随笔分类 -  ACM——DP

摘要:1 //把一个序列转换成严格递增序列的最小花费 CF E - Sonya and Problem Wihtout a Legend 2 //dp[i][j]:把第i个数转成第j小的数,最小花费 3 //此题与poj 3666相似 a[i]转换成a[i]-i 4 5 #include 6 #include 7 #include 8 #include 9 #include... 阅读全文
posted @ 2016-09-24 10:24 yyblues 阅读(608) 评论(0) 推荐(0) 编辑
摘要:1 //把一个序列转换成非严格递增序列的最小花费 POJ 3666 2 //dp[i][j]:把第i个数转成第j小的数,最小花费 3 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 // #include 11 using namespace std; 12 #define... 阅读全文
posted @ 2016-09-24 10:21 yyblues 阅读(827) 评论(0) 推荐(0) 编辑
摘要:1 // HDU5807 Keep In Touch DP 2 // 思路:直接暴力是O(n^6).所以要优化一下 3 // dp[i][j][k][0]:当前点i j k的方案数 4 // dp[i][j][k][1]:j在当前时刻,i k还在上次 5 // dp[i][j][k][2]:j k在当前时刻,i还在上次 6 // 那么就可以转移了 本题u 9 using nam... 阅读全文
posted @ 2016-08-13 13:57 yyblues 阅读(303) 评论(0) 推荐(0) 编辑
摘要:1 // 多校5 HDU5787 K-wolf Number 数位DP 2 // dp[pos][a][b][c][d][f] 当前在pos,前四个数分别是a b c d 3 // f 用作标记,当现在枚举的数小于之前的数时,就不用判断i与dig[pos]的大小 4 // 整体来说就,按位往后移动,每次添加后形成的数都小于之前的数,并且相邻k位不一样,一直深搜到cnt位 ... 阅读全文
posted @ 2016-08-03 19:29 yyblues 阅读(395) 评论(0) 推荐(0) 编辑
摘要:1 // 多校5 1001 HDU5781 ATM Mechine 2 // http://acm.hdu.edu.cn/search.php?field=problem&key=2016+Multi-University+Training+Contest+5&source=1&searchmode=source 3 // 记忆化搜索 4 // 每次二分,决策最优,所以最多查询1... 阅读全文
posted @ 2016-08-03 19:27 yyblues 阅读(255) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5791 HDU5791 Two 题意 :两个数组,多少个不连续子串相等 思路: dp[i][j] :a串i结尾,b串j结尾的不连续子串数目个数 阅读全文
posted @ 2016-08-02 17:24 yyblues 阅读(161) 评论(0) 推荐(0) 编辑
摘要:2016 Multi-University Training Contest 4 HDU 5773 LIS 题意:0可以替换任意一个数字,求最长严格上升序列 官方题解 最后答案加上0的个数肯定没错,但为什么每个数减去它之前0的个数?看下面这个数据 0 1 2 3 4 0 5 如果不减 答案是7显然是 阅读全文
posted @ 2016-07-29 14:04 yyblues 阅读(444) 评论(0) 推荐(0) 编辑
摘要:A - Pineapple Incident 1 #pragma comment(linker, "/STACK:102c000000,102c000000") 2 #include <iostream> 3 #include <cstdio> 4 #include <cstring> 5 #inc 阅读全文
posted @ 2016-07-16 10:41 yyblues 阅读(352) 评论(0) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1079 思路:如果把每种油漆看成一种状态,O(5^15)不行 DP[a][b][c][d][e][f]:a表示能凃一个的有多少个 b能凃2个的还有多少个 c能凃3个的还有多少个 d能凃4个的还有多少个 阅读全文
posted @ 2016-05-31 17:13 yyblues 阅读(230) 评论(0) 推荐(0) 编辑
摘要:题意:给出一个n行m列的草地,1表示肥沃,0表示贫瘠,现在要把一些牛放在肥沃的草地上,但是要求所有牛不能相邻,问你有多少种放法。 思路: DP[i][j]=sum(dp[i-1][k]); i表示当前这一行,状态为j有多少种方案 首先,i行能放牛的状态由前一行i-1决定。所以我们只要知道前一行的状态 阅读全文
posted @ 2016-05-25 17:56 yyblues 阅读(154) 评论(0) 推荐(0) 编辑
摘要:题意:给出两个串a和b,一次只能将一个区间刷一次,问最少几次能让a=b 思路:首先考虑最坏的情况,就是先将一个空白字符串刷成b需要的次数,直接区间DP[i][j]表示i到j的最小次数。 再考虑把a变成b的次数 ans[i]:a从(0,i)变成b(0,i)所需的最小次数 初始化ans[i]=dp[0] 阅读全文
posted @ 2016-05-18 20:09 yyblues 阅读(234) 评论(0) 推荐(0) 编辑
摘要:题意:有一个队列,每个人有一个愤怒值a[i],如果他是第k个上场,不开心指数就为(k-1)*a[i]。但是边上有一个小黑屋(其实就是个堆栈),可以一定程度上调整上场程序 思路:枚举区间和每个人第几个上场 dp[i][j]:[i,j]的最小分数 假设区间[i,j],第i个人第k个出场(1<=k<=j- 阅读全文
posted @ 2016-05-18 17:09 yyblues 阅读(218) 评论(0) 推荐(0) 编辑
摘要:题意:有一家快餐店送外卖,现在同时有n个家庭打进电话订购,送货员得以V-1的速度一家一家的运送,但是每一个家庭都有一个不开心的值,每分钟都会增加一倍,值达到一定程度,该家庭将不会再订购外卖了,现在为了以后有更多的家庭订购,要将外卖送到的情况下使得所有用户的不开心值总和达到最小 思路:区间DP dp[ 阅读全文
posted @ 2016-05-17 16:46 yyblues 阅读(177) 评论(0) 推荐(0) 编辑
摘要:题意:在一个数字序列中, 取出不包括头和尾的所有数字, 每次取出一个数字的代价等于取出的这个数和左右两个数的乘积, 求总代价和最小的取法 此小到大递归 阅读全文
posted @ 2016-05-14 18:19 yyblues 阅读(188) 评论(0) 推荐(0) 编辑
摘要:http://codeforces.com/problemset/problem/149/D 题意: 给一个给定括号序列,给该括号上色,上色有三个要求 1、只有三种上色方案,不上色,上红色,上蓝色 2、每对括号必须只能给其中的一个上色 3、相邻的两个不能上同色,可以都不上色 求0-len-1这一区间 阅读全文
posted @ 2016-05-12 22:50 yyblues 阅读(202) 评论(0) 推荐(0) 编辑
摘要:输出一个串里面能匹配的括号数 状态转移方程: if(s[i]=='('&&s[j]==')'||s[i]=='['&&s[j]==']') dp[i][j]=dp[i+1][j-1]+2; 然后再区间合并 阅读全文
posted @ 2016-05-10 11:45 yyblues 阅读(228) 评论(0) 推荐(0) 编辑
摘要:题意:切一个凸边行,如果不是凸包直接输出。然后输出最小代价的切割费用,把凸包都切割成三角形。 先判断是否是凸包,然后用三角形优化。 dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+w[i][k]+w[j][k]); w[i][j]代表i到j点的切割费用。 dp[i][ 阅读全文
posted @ 2016-05-10 11:04 yyblues 阅读(215) 评论(0) 推荐(0) 编辑
摘要:【动态规划】凸多边形最优三角剖分 枚举三角行,再递归三角形旁边的两个多边形。 【动态规划】凸多边形最优三角剖分 枚举三角行,再递归三角形旁边的两个多边形。 阅读全文
posted @ 2016-05-08 23:57 yyblues 阅读(310) 评论(0) 推荐(0) 编辑
摘要:dp[i]][j]=min(dp[i+1][j]+1,dp[i+1][k-1]+dp[k][j]) 表示第i天到j的最小数量。如果第i天的衣服只自己穿的话,不考虑后面的就是dp[i][j]=dp[i+1][j]+1.否则就是dp[i][j]=dp[i+1][k-1]+dp[k][j],其中第k天的衣 阅读全文
posted @ 2016-05-08 22:24 yyblues 阅读(151) 评论(0) 推荐(0) 编辑
摘要:石子合并(GarsiaWachs算法) 只能用该算法过!!! 详解看代码 1 //#pragma comment(linker, "/STACK:167772160")//手动扩栈~~~~hdu 用c++交 2 #include<cstdio> 3 #include<cstring> 4 #incl 阅读全文
posted @ 2016-05-07 20:32 yyblues 阅读(252) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示