ACM--DP
animalcoder
NULL
展开
-
二重限制的01背包 最优解及其最优解的方案数
http://49.235.120.161/problem/10031题意:N个物品 选每个物品i 将用时si+di 花费vi元 获得价值为1问N个物品 总时间为T 钱包有M元 获得的最大价值Ans与Ans的方案数N<=1000 T,M<=100正着做:ll dp[1005][105][105]; 前i个物品 花时间至多j,花钱至多k的最大价值l...原创 2019-12-17 14:50:33 · 522 阅读 · 0 评论 -
[区间dp+记忆化搜索] 洛谷P1220 && 洛谷P1005
P1005题意:一个长为m的数列执行m次操作:每次取队首/队尾 价值为ai*2^(第x次操作), 一共有n行这样的数列,问最大价值和?思路:每行分别求一遍dp.dp[l][r]为 [l,r]范围内的最大价值 转移方程分别考虑[l,r]转到[l+1,r] ,[l,r-1]状态的价值的改变量即可实现:记忆化搜索,往里缩。注意:要__int1...原创 2019-09-05 16:48:45 · 124 阅读 · 0 评论 -
拓扑排序+期望dp解决DAG上的期望
例题1:luogu4316倒推://luoguP4316.1 题意:n<1e5 m<2e5 DAG上到第N个点的期望步数 每次选择等概率前往下一个点,带边权//一般期望倒着维护就不用乘贡献概率,正着就要乘贡献概率//逆推版本:设dp[i]为i到点n的期望步数 //dp[i]=sum_{}(dp[j]+eij)/ou(i) //i->j dp[n]=0,ans...原创 2019-09-02 15:03:47 · 238 阅读 · 0 评论 -
洛谷P2671 前缀和+算贡献
//P2671 n<1e5个数 col,num<1e5 每个数有颜色col 价值num //三元组(x,y,z)的价值为(x+z)*(num(x)+num(z)) //三元组满足 x<y<z 且 y-x=z-y 且 x跟z的颜色相同 //统计所有三元组的价值对10007取模//统计4个前缀和 边统计边算每个z的贡献 分奇偶统计#include&...原创 2019-08-27 16:55:56 · 262 阅读 · 0 评论 -
CF995F拉格朗日+组合数学+DP
28. CF995F拉格朗日+组合数学+DP,1是根节点若D=3000,有O(nD)的做法:设DP[i][j]为点i的权值是j的方案数,答案就是sum_{i=0}^{D} dp[1][i]Dp[u][j]=对每个邻接点v dp[u][i]=dp[u][i]*( dp[v][j]的前缀和, j<=i)就是说预处理1~3000 用拉格朗日插值搞第d项#includ...转载 2018-09-08 00:30:32 · 291 阅读 · 0 评论 -
CF285E 容斥+恰好+DP
34.CF285E 容斥定理+DP+恰好 O(n^2)跟33类似(DP部分不会做,copy别人的题解,这道题的恰好K套路要学会= =)题意:1~n排列pi,若|pi-i|=1则i为好位置,求恰好K和好位置的方案数n,k<=1000思路:设Dp[i][j][2][2]为前i位有j个好位置,i是否使用,i+1是否使用恰好为K转化成至少为K来做(跟33一样),ans=至少K...转载 2018-09-08 00:03:42 · 666 阅读 · 0 评论 -
BZOJ3622 容斥+DP+恰好
33.BZOJ3622 容斥定理+DP+恰好题意:各有n个数an,bn,上下11匹配,问恰好ai>bi 比ai<bi多k组的方案数等价于问恰好ai>bi 有(n+k)/2组的方案数恰好->至少 ,先求至少 : 设dp[i][j]为前i个数至少j组满足 a[x]>b[y]的方案数Dp[i][j]=dp[i-1][j](第i个不匹配小的) +dp[...原创 2018-09-08 00:06:53 · 230 阅读 · 0 评论 -
斜率DP题目小结
如果K是常数:单调队列如果X单调,K单调:斜率优化若K不单调,X单调:二分在(上)下凸壳上寻找斜率作为dp值。 若X不单调,K不单调:需要用Splay/CDQ分治维护(上)下凸壳。题目1:华工G:https://www.nowcoder.com/acm/contest/94/GDP方程:题解:X单调,K不单调,斜率优化+二分:二分找k作为答案代码:https://www.nowcoder.com/...原创 2018-04-29 03:08:51 · 545 阅读 · 0 评论 -
BZOJ1042 DP+容斥
题意:给出4种硬币的价值q个询问 q<=1000每次询问给出硬币的上限,跟需要组成的价值s<100000问组成s有多少种方法思路:如果每次跑完全背包,最坏可能到O(qs)接受不能先看成无硬币限制,算是经验题吧然后ans=f【s】-f【1种硬币超限制】+f【2种硬币超限制】-f【3种硬币超限制】+f【4种硬币超限制】#include<iostream>#include<...原创 2018-04-14 11:12:56 · 140 阅读 · 0 评论 -
CF#448C 数论+壮压DP
好题原创 2017-12-03 17:12:00 · 292 阅读 · 0 评论