CODEFORCES 429B 动态规划】的更多相关文章

http://codeforces.com/problemset/problem/429/B 可以参考这篇文章: http://blog.csdn.net/pure_lady/article/details/46764839 因为有断点,所以可以预处理四个顶点到任意点的距离最大值,通过拼接得到断点后的距离 然后就是枚举断点的情况,发现断点不可能在边缘,就可以开始写了 #include <iostream> #include <string> #include <cstring…
Codeforces 837D 动态规划 传送门:https://codeforces.com/contest/837/problem/D 题意: 给你n个数,问你从这n个数中取出k个数,这k个数的乘积的末尾最多有多少个0 题解: 要想让乘积的末尾有0,实际上就是2的倍数和5的倍数相乘才能得到贡献,所以每个数对答案的贡献实际上就是这个数中包含的2的个数还有这个数中包含的5的数对答案的贡献 设定dp状态为 \(dp[i][j]表示从n个数中选出i个数,其中有j个5的个数,最多有多少个2\) 边界…
codeforces 1183H 动态规划 传送门:https://codeforces.com/contest/1183/problem/H 题意: 给你一串长度为n的字符串,你需要寻找出他的最长的前k个子串,问你得到这些子串需要减少的字符个数之和是多少,easy版本的k是100,hard版本的k是1e12. 题解: hard版本题解: dp[i][j]表示前i个字符中选择了j个的子串数目 如果前面有出现过的字符呢?比如 aba 算到第二个a的时候 把ab 删掉 和 把 ba删掉 得到同一种结…
E - Working out Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status Practice CodeForces 429B 描述 Summer is coming! It's time for Iahub and Iahubina to work out, as they both want to look hot at the beach. The gy…
Description Summer is coming! It's time for Iahub and Iahubina to work out, as they both want to look hot at the beach. The gym where they go is a matrix a with n lines and m columns. Let number a[i][j] represents the calories burned by performing wo…
http://codeforces.com/contest/429/problem/B 题意:一个从左下到右上,一个从左上到右下,要求只相交一次,求整个路径和的最大值 思路:发现可以枚举交点,然后算到四个角的值,而且,边界上面的点不可能作为交点. #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #include<iostream> ][],f2[][],…
After several latest reforms many tourists are planning to visit Berland, and Berland people understood that it's an opportunity to earn money and changed their jobs to attract tourists. Petya, for example, left the IT corporation he had been working…
题目链接:http://codeforces.com/problemset/problem/429/B 题目大意:两个人(假设为A,B),打算健身,有N行M列个房间,每个房间能消耗Map[i][j]的卡路里,A起点为(1,1)要达到(n,m)点,且每次只能向右走一步或向下走一步, B起点为(n,1),要达到(1,m),且每次只能向上走一步,或向右走一步.有要求A,B必须在某一个房间相遇一次,且A,B在该房间不再消耗卡路里,因为两人锻炼身体的速度不同, 所以在相遇时经过的房间数亦可能不相同.问两人…
题目链接:http://codeforces.com/problemset/problem/429/B 题意: 给你一个n*m的网格,每个格子上有一个数字a[i][j]. 一个人从左上角走到右下角,一个人从左下角走到右上角,要求两条路径有且仅有一个交点. 问你除去交点格子上的数字,路径上数字之和最大是多少. 题解: 表示状态: dp[i][j][0/1/2/3] = max sum 表示从某个角走到(i,j)这个格子,最大路径上数字之和 0,1,2,3分别代表左上角.右上角.左下角.右下角 找出…
这道题目昨晚比赛没做出来,昨晚隐约觉得就是个动态规划,但是没想到怎么DP,今天想了一下,突然有个点子,即局部最优子结构为 1-j,j<i,遍历i,每次从所有的1到j当中的最优解里面与当前商品进行匹配,若匹配成功,遍判断是否要加....结果WA了,想了一下,确实不对,因为题目的限制条件是所有美味值的总和除以所有卡路里总和一定要==k,这个就好麻烦了,根本不是我定义的那种子结构最优即可,任意后面的状态都可影响前面,所以规划方向无法确定...其实这个时候就应该想到用背包问题,背包也是商品挑选,但规划方…