首页 > 其他分享 >平邑集训(补题)

平邑集训(补题)

时间:2024-08-05 19:21:29浏览次数:16  
标签:int 平邑 else cdot flag 3001 补题 && 集训

Day 1

A 咕咕

题目描述



解法

DP,设 \(dp_{i,j}\) 表示从 \((1,1)\) 走到 \((n,m)\) 的方案数。

转移的时候,需要按照给定的限制走,如果一个点的(2)(3)限制冲突了,那么就标记一下,经过他的时候绕过他,时间复杂度 \(O(nm)\)。

代码

点击查看代码
int n,m,t;
int f[3001][3001];
int dp[3001][3001];

void solve()
{
	cin>>n>>m>>t;
	int i,j;
	while(t--)
	{
		int a,b,c,d;
		cin>>a>>b>>c>>d;
		bool flag = 0;
		if(a==n&&b==m)
			continue;
		if((c==a+1&&d==b)||(d==b+1&&a==c))
			flag = 1;
		if(!flag||f[a][b]==-1)
		{
			f[a][b] = -1;
			continue;
		}
		if(c==a+1)
		{
			if(f[a][b]==2)
				f[a][b] = -1;
			else
				f[a][b] = 1;
		}
		else if(d==b+1)
		{
			if(f[a][b]==1)
				f[a][b] = -1;
			else
				f[a][b] = 2;
		}
	}
	if(f[1][1]==-1)
	{
		cout<<0<<endl;
		return;
	}
	dp[1][1] = 1;
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
		{
			if(f[i][j]==-1)
				dp[i][j]=0;
			else
			{
				if(f[i-1][j]!=2)
					dp[i][j] += dp[i-1][j];
				if(f[i][j-1]!=1)
					dp[i][j] += dp[i][j-1];
				dp[i][j] %= mod;
			}
		}
	cout<<dp[n][m]<<endl;
	return;
}

B 找子串

题目描述

解法

  • Subtask 1

每次删掉 \(T\) 后重新暴力再找第一个 \(T\),时间复杂度 \(O(\dfrac{|S|}{|T|}\cdot |S| \cdot |T|)\)。

  • Subtask 2

每次删掉 \(T\) 后,从删掉位置之前的 \(T\) 个位置开始,用 kmp 或哈希找 \(T\),时间复杂度 \(O(|S|\cdot |T|)\)。

标签:int,平邑,else,cdot,flag,3001,补题,&&,集训
From: https://www.cnblogs.com/OoXiaoQioO/p/18343862

相关文章

  • 2024牛客暑期补题 4 I Friends
    新手做题当然会有许多的经验。本人就是蒟蒻(这个题用到map作为预备大二)还没有完全学懂stl但是大体内容学的差不多。用到图论的知识以及set的自动排序和去重以及双指针就可以做。大家要是像我一样水平可以先去看看这几个知识图论看怎么构建set了解一下就行双指针最好去......
  • PYYZ 集训
    摸底测试#1T1-咕咕直接\(dp\),转移时注意限制即可。点击查看代码signedmain(){ n=read(),m=read(),t=read(); while(t--){ inta=read(),b=read(),c=read(),d=read(); boolflag=0; if(a==n&&b==m)continue; if((c==a+1&&d==b)||(d==b+1&&a==c))flag=1;......
  • 科大讯飞笔试第三批 第三题补题
    树上DP,就说求以根节点出发的最长节点值非减的深度+次长节点值非减的深度,能够构成一个链。非增同理有向图+记忆化搜索dfs做题的时候结果读取逻辑写乱了,最后没通过,还得练#include<iostream>#include<vector>#include<cmath>#include<string.h>usingnamespacestd;const......
  • Codeforces Round 963 (Div. 2) 补题记录(A~D,F1)
    不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.A直接计算每一个选项最多对多少个题加起......
  • 2024.8广东集训体验/感受
    2024.8广东集训体验/感受出于某些不明原因,我并不方便点名道姓这次集训所在学校是哪一所学校,因此我将称其为"最美中学".FunFact:我甚至找不到一篇较官方的文档介绍这些最美中学,真是个草台班子.写这篇文章并不想单纯的开喷,我要从好坏两个方面描述一下这所中学.首先说一下好......
  • 2024梦熊BeiJing集训题目题解目录
    Day1基础动态规划luoguP1896[SCOI2005]互不侵犯codeforces1209ERotateColumns(easy)codeforces1209ERotateColumns(hard)杂题luoguP2371[国家集训队]墨墨的等式AtCoderabc219_fCleaningRobotP3043[USACO12JAN]BovineAllianceG[ARC105C]CamelsandB......
  • 福州三中集训 2024.8.3
    福州三中集训2024.8.3——找规律、构造专题早上讲了好多构造……脑袋快炸了,下午再搞比赛,脑子感觉就是火山……早上老师先来了道数学题开开胃,求:\[\sum_{i=1}^n\timesi\timesi!\modn\]我:这。。慢慢拆吧,头脑不需要风暴。呐——\[\sum_{i=1}^n\timesi\timesi!\\=(i+1......
  • AtCoder Beginner Contest 365 补题记录(A~E,G)
    Perf2000+,但是补不回来上场超低的Rating/llA#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;signedmain(){intn;cin>>n;if(n%400==0)cout<<"366\n";elseif(n%100==0)cout<<"365\n";......
  • 24暑假集训day2上午
    上午内容:基础数据结构1.链表分类:单向和双向单向:当前链表只指向下一个元素双向:对于每个元素,记录其前面一个元素,也记录其后面一个元素。注意:链表不建议使用STL的某些元素进行替代,手写链表更为方便。1.单向链表做法:维护每个元素编号,然后维护nx指针,表示当前元素的下一个......
  • 24暑假集训day1上午
    上午内容:枚举递推贪心广告:推荐此题单1.枚举枚举:最基础、最容易想到本质:不重复,不遗漏T1数的划分问题简述:将整数\(n\)分成\(k\)份,且每份不能为空,任意两个方案不相同(不考虑顺序)。方法:搜索关键:有顺序具体步骤:尝试从大到小进行拆分,我们记录当前数剩下总和,记录当前还需......