随笔分类 - DP
摘要:#include #include #include using namespace std; int T,A[10]; bool f[100010]; inline int read(){ int x=0,f=1;char ch=getchar(); while(ch'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='...
阅读全文
摘要:题意:给定一个n个点的无向图,开始没有边,然后m个操作,每次加边或者删边,每次操作后输出正好k个边的匹配数k=1,2,3,...n/2,n<=10,m<=30000 可以发现,n<=10可以想一想状压,以点集为状态 于是dp[S]表示匹配中的点集为S时的方案数 加边时,dp[S]+=dp[S-2u-
阅读全文
摘要:先spfa一遍处理出d[]数组,(从n开始bfs一遍标记可以达到n的点) 题意即,在走最短路的基础上,可以最多多走K长度的路径, 考虑DP,每次剩余可走的长度会因决策而改变,所以考虑dp[i][j]为当前在i号节点,剩余可多走长度为j的方案数 dp[u][j]可以从dp[v][e[i].w-(d[v
阅读全文
摘要:每一行做一个DP,然后整体矩阵做一次DP即可 好惨啊,三目运算符记得要加括号 Code
阅读全文
摘要:前缀和优化一下DP O(n3)->O(n2) Code
阅读全文
摘要:[我是传送门] 因为边权只能增加,那么设f[u]为u子树上从i出发到达某个叶节点的最大路径, 显然Ans应该增加f[u]-f[v]-e[i].w Code
阅读全文
摘要:[BZOJ1899] 首先有个很贪心的思路,吃饭时间长的最先打饭为最优,所以开始先排个序 然后考虑DP,我们不需要知道某个人在哪个对,只要关注总的时间就行了 肯定需要一维表示当前同学编号,还需要表示某个窗口的打饭时间,如果知道其中一个窗口,另一个也可以知道,所以一维就行 那么用f[i][j]表示前i
阅读全文
摘要:[Luogu1156] f[i]表示高度为i时的存活时间 Code
阅读全文
摘要:[不稳定的传送门 Solution dp[i][j]表示前i个字符当前匹配到不吉利串的第j个,即当前方案的后缀等于不吉利串前缀 然而由于n过大,不能直接转移,用矩阵优化 Code
阅读全文
摘要:Description "题目链接" Solution 这题状态比较难想, $dp[i][j][g][h]$表示强i个人有j个男生,在某个区间男生最多比女生多g人,女生最多比男生多h人的方案数,然后DP即可 最后答案是是所有$dp "n+m][n][i][j" $加起来 Code c++ inclu
阅读全文
摘要:Description "题目链接" Solution 用三进制表示陷阱状态,1表示有害,2表示无害,0表示不知道 用$f[S][i]$表示状态为S时陷阱i有害的概率,这个可以预处理出 $d[S][i][j][h]$表示状态为S,在坐标$(i,j)$,血量为h时的答案 然后就可以DP了,记忆化搜索
阅读全文
摘要:Description "题目链接" Solution 容斥原理,答案为忽略质数限制的方案数减去不含质数的方案数 然后矩阵乘法优化一下DP即可 Code c++ include include include define N 120 using namespace std; const int M
阅读全文
摘要:Description "题目链接" Solution 在虚树上跑DP即可 关于虚树的建立,是维护一个最右链的过程 关键代码如下: c++ sort(A+1,A+k+1,cmp);//按dfs序排序 s[top=1]=1;//栈维护最右链 for(int i=1;i1&&dep[f] include
阅读全文
摘要:Description "题目链接" Solution 在虚树上跑DP即可 Code c++ include include include include define ll long long define N 250010 using namespace std; const ll Inf=1
阅读全文
摘要:Description "题目链接:Codeforces" Solution 因为路线随机,所以找出各路线最短路必须经过的点,在这个点必定能上车 直接floyd暴力找割点 然后不断用k条公交车路线来更新DP答案,直到更新不了为止,dp[i]表示从点i到终点的答案 Code
阅读全文
摘要:Description Since you are the best Wraith King, Nizhniy Magazin «Mir» at the centre of Vinnytsia is offering you a discount. You are given an array a
阅读全文
摘要:Description "题目链接:Luogu" Solution 这题结合了DP和概率与期望,其实只要稍微知道什么是期望就可以了, 状态的构造很关键,$F[i][j][0/1]$表示已经到第$i$个课程,之前用了$j$个申请机会,且当前课程是(1)否(0)申请 然后就容易想到转移方程, $F_{i
阅读全文
摘要:Description 约翰家的N头奶牛聚集在一起,排成一列,正在进行一项抗议活动。第i头奶牛的理智度 为Ai,Ai可能是负数。约翰希望奶牛在抗议时保持理性,为此,他打算将所有的奶牛隔离成 若干个小组,每个小组内的奶牛的理智度总和都要大于零。由于奶牛是按直线排列的,所以 一个小组内的奶牛位置必须是连
阅读全文
摘要:Description 对于一个序列𝑎[1], 𝑎[2], … , 𝑎[𝑛],其子序列为一序列𝑝[1], 𝑝[2], … , 𝑝[𝑚],满 足1 ≤ 𝑝[1] f[i][j]) { f[i][j] = f[i][j 1]; g[i][j] = g[i][j 1]; } if (A[
阅读全文

浙公网安备 33010602011771号