
dp
文章平均质量分 68
Leo_Riddle
AFO
展开
-
codeforces 346C Number Transformation II
传送门题意:给两个数字a,b,有两个操作,第一个操作直接-1,第二个操作是,求a变成b的最少操作数题解:很明显令表示由b+k到b的最少操作数,假设b,b+k可以一步操作到达,由此得出单调上升,即可贪心每次减去最大值注意:到会有重复,需要用到函数去重后的数字当然也有别的思路:考虑到这是第一步可达区间,再从这里可以依次扩展到其他步的可达区间,有机会再写吧代码:...原创 2019-11-16 17:53:04 · 227 阅读 · 0 评论 -
codeforces 1256E Yet Another Division Into Teams
传送门题意:n个数字,分成若干队伍(每个队伍至少3个数字),每个队伍都有最大最小值的差值,如何才能使所有队伍的最大最小差值之和最小。题解:容易有结论:人数 6,一定没有,人数6优下证:不妨设 则任取 有 所以我们可以通过将所有队员划分为3、4、5人数的队伍,贪心得按照大小顺序选择队员一定优,然后通过dp划分即可得到最优解...原创 2019-11-16 14:33:14 · 239 阅读 · 0 评论 -
洛谷 P1169 [ZJOI2007]棋盘制作(bzoj P1057 [ZJOI2007]棋盘制作)
学习一发悬线法,但是好像出了点意外的事,在洛谷上A了却在BZOJ上炸了然后和标解拍了没问题。。有毒!!悬线法:设line[i][j]表示[i][j]位置向上的最大悬线(就是到障碍点的最大长度),fx[i][j]表示[i][j]位置悬线向左最大能移动距离,fy[i][j]表示[i][j]位置悬线向右最大能移动距离。怎么求fx和fy呢??如果悬线长度为1那么就是这个位置向左或向右达到障碍的距离原创 2017-07-07 10:50:39 · 399 阅读 · 0 评论 -
bzoj P4033 [HAOI2015]树上染色
传送门这道题很妙啊。反正我是想不出来。。首先有一个很容易想到的状态,设f[i][j]表示子树为i,i涂了j个节点的距离和。嗯这个还是能想到的,然后考虑转移,然后就被虐成zz了。。分析子树i与儿子所连边的贡献,可以发现这条边的贡献等于他左右两边同色点数乘积和(左黑点数*右黑点数+左白点数*右白点数)。于是我们发现可以进行转移了,就是一个树形dp,f[x][j]=max(f[x][j]原创 2017-07-19 01:22:09 · 422 阅读 · 0 评论 -
bzoj P2560 串珠子
传送门第一道子集dp。(感觉很像状压dp。。好弱啊我看了好多大神的博客才勉强看懂g[s]表示s状态下的所有情况,即s状态下的点两两之间任意连边(包括不连边),f[s]表示s状态下的合法情况(所有点连通)。那么我们就可以那全集剪去不合法的子集。全集就是f[i]=f[i]*(a[j][k]+1)那么怎么求不合法的子集呢?我们任取一个点(任取二进制中的一个1)来枚举,可以原创 2017-07-22 01:50:33 · 518 阅读 · 0 评论 -
bzoj P1042 [HAOI2008]硬币购物
传送门这道题算我写的第一道容斥原理。大概了解了容斥原理的思想。首先这题要求付款方案数,一道计数问题,然后我们就可以用容斥原理玩转的求一些计数问题。我们考虑先dp,设F[i]为不考虑每种硬币的数量限制的情况下,得到面值i的方案数。然后上容斥原理我们可以考虑用不考虑限制的方案数减去超过限制的方案数。再考虑怎么求超过限制的方案数,我们发现由容斥原理有:任意超过限制=1超过限制+2超过限制原创 2017-07-22 01:27:50 · 334 阅读 · 0 评论 -
bzoj P3195 [Jxoi2012]奇怪的道路
传送门这道题好难啊,不会(这个菜鸡博主什么都不会这道题就是状压dp啦(跟主旋律那题一样都是图的状压dp都是以点作状态压缩,那到题是枚举图的点的集合(子集dp),这道题是枚举点的奇偶性)说一下dp方程式,设F[i][j][s][l]表示枚举到第i个点,用了j条边,(由i-k~i的点的出度奇偶性组成的状态)s,与第l条边相连(注意这重状态不能省去,要不然会算重(连边顺序不同也算一种方案))原创 2017-07-22 01:09:45 · 379 阅读 · 0 评论 -
bzoj P4870 [Shoi2017]组合数问题
传送门炒鸡强的dp啊,原来组合题还可以这么做,用组合的意义来dp,只做过用组合优化dp。我们考虑一下那个式子的意义:nk个东西中取r个的方案数+nk个东西取k+r个的方案数+nk个东西取2k+r个的方案数+...然后进一步转化问题:从nk个物品里选取膜k余r个物品的方案数。那么怎么求这个问题呢?很容易能想到一个简单的dp,设f[i][j]表示前i个物品取了膜k余j的方案数,原创 2017-07-31 01:31:02 · 574 阅读 · 0 评论 -
bzoj P1072 [SCOI2007]排列perm
传送门果然一遇到dp就瞬间失去了思考能力。。整没看出来这是状压dp,思路也很不错。我们可以发现s长度很短,所以很容易想到状压来枚举,我们枚举一些数字是否使用,用状压记录一下,也就是设f[s][i]表示状态为s的膜d为i的方案数,然后通过枚举下一位转移。怎么转移呢?我们枚举了模数所以新添的一位就可以直接加上枚举的模数再膜就是新添一位后的新膜数f[i^(1注意:我们这里算的是组原创 2017-07-31 00:37:48 · 397 阅读 · 0 评论 -
洛谷 P3478 [POI2008]STA-Station(bzoj P1131 [POI2008]STA-Station)
传送门这题必须要吐槽!!!首先树形dp先求以1为根的深度和,然后由父亲节点转移到儿子节点,也就是除了儿子节点以下包括儿子节点的其他节点深度减1,儿子节点以下包括儿子节点的其他节点深度加一(画个图很容易看出,实在不行看popoqqq的博客,解释的很清楚),然后o(1)转移。状态转移方程:f[x]=f[fa[x]]+n-2*son[x],son[x]就是x节点包括自己的所有儿子节点个数,f原创 2017-07-07 22:17:50 · 513 阅读 · 0 评论 -
codeforces 822D My pretty girl Noora
很烦,不会做的尴尬,好神的数学题。很显然就是求f(x)剩下的暴力,博主表示打表找规律一点没用上(主要是博主菜),首先证明一个东东就是每一轮分女孩的组数一定是素数(这个鬼知道啊!!),考虑合数di = a·b,显然有,然后基本不等式+放缩就有,也就是只要是个合数就一定没素数组数优(2333我怎么可能会想到往素数方面考虑)然后埃氏筛法质因数分解,设is_prime[i]表示i的最小素因数,主要原创 2017-07-05 16:31:25 · 801 阅读 · 0 评论 -
洛谷 P3773 [CTSC2017]吉夫特(bzoj P4903 [CTSC2017]吉夫特/uoj P300【CTSC2017】吉夫特)
传送门昨天写的,额这题应该算ctsc2017最水的了吧,连我都会。这题一看组合数取模直接上lucas定理啊,知道lucas的应该都A了吧。。还有那个样例提示的太明显了吧。。还有不是很懂网上为什么有人要用exlucas,2难道不是质数??然后就是肯定都是组合数膜2都是1,根据lucas定理每一个组合数最后肯定都化成了c(1,1)或c(1,0)或c(0,1)或c(0,0),然后c(1,原创 2017-07-16 19:28:20 · 1014 阅读 · 0 评论 -
bzoj P1925 地精部落
传送门很妙的dp,状态设出来了方程没推出来(博主果然菜)设f[i][j]表示前i个数第一个数为[1,j]且第一个数降序的方案数,然后有f[i][j]=f[i][j-1]+f[i-1][i-j]解释一下,我们显然知道f[i][j-1](前i个数第一个数为[1,j-1]且第一个数降序的方案数),那么只要求前i个数第一个数为j且第一个数降序的方案数,考虑第1个数为j且降序则第二个数小于j原创 2017-07-04 20:23:33 · 387 阅读 · 0 评论 -
洛谷 P3818 小A和uim之大逃离 II
传送门典型的搜索要注意的是:这题是搜一条虽短路径,所以用bfs(远远快于dfs);这题还要用到dp,设f[i][j][k]表示到位置[i,j],k表示是否用了能力所用的最少步数。dfs的代码(60分):#include#includeusing namespace std;const int Maxn=1005;const int oo=2147483647;char原创 2017-07-02 20:05:16 · 577 阅读 · 0 评论 -
洛谷 P1896 [SCOI2005]互不侵犯King(bzoj P1087 [SCOI2005]互不侵犯King)
传送门虽然水题一道但是还是调了很长时间,最近做题状态很差啊,很迷。。状压dp,比较简单没什么优化,把每一行作状态记录,所以跑了32ms(orz 0ms大神),设f[i][j][k]表示第i行状态为j用了k个皇的方案数,然后有一个很弱智的优化,把可行的状态处理出来,这里的可行是指上下行不斥每一行中的方格彼此不斥的状态。然后就有f[i][j][k]=f[i-1][l][k-cnt[j]](原创 2017-07-11 00:39:22 · 370 阅读 · 0 评论