09 2013 档案
摘要:Employment PlanningTime Limit:2000MSMemory Limit:65536KB64bit IO Format:%lld & %lluSubmitStatusPracticeZOJ 1454DescriptionA project manager wants to determine the number of the workers needed in every month. He does know the minimal number of the workers needed in each month. When he hires or fi
阅读全文
摘要:学了一下最长公共子串,它是属于dp里面的 dp=max{(i,j-1),(i-1,j),(i-1,j-1)+d}问题,不得不说,规划方向确实厉害,当然这只适用于两个字符串匹配的问题,n个字符串的话,我查了一下,要用后缀数组,这个以后再来弄吧。比较难的是记录公共字串,在DP的时候记录好搜索的方向,就可以询步骤得到公共串。尤其1503这题呢,除了把公共部分打印出来,还要把非公共部分打印出来。#include #include #include using namespace std;char a[105] , b[105];int dp[105][105];int rec[105][105];in
阅读全文
摘要:话说DP=记忆化搜索这句话真不是虚的。面对这道题目,题意很简单,但是DP的时候,方向分为四个,这个时候用递推就好难写了,你很难得到当前状态的前一个真实状态,这个时候记忆化搜索就派上用场啦!通过对四个方向进行搜索,即可得到当前状态的最优解。#include #include using namespace std;int date[105][105];int dp[105][105];int dir[][2]= {{0,1},{0,-1},{1,0},{-1,0}};int r,c;int dpac(int i,int j){ if (dp[i][j]>1) return dp[i][j]
阅读全文
摘要:给出一系列的1x2的矩阵,要你求出矩阵以什么样的次序相乘才使得相乘次数最少,。(不用排序,只要决定该矩阵是和前面相乘比较好,还是后面)。今天仔细想了一下,跟之前做的DP题目做了下对比,你比如说猴子堆砖块拿香蕉那题,那种是通过设定局部量j,求得1到j的局部最优解,再递增j,直到求得全局最优解这种题目,由于两两之间不同的顺序就能产生不同解,所以,是通过设定局部量j,求得相隔为j的两矩阵相乘的最优解,再递增j,直到全局。一开始我的思路就局限在第一种,所以怎么想也没理清怎么写。还有,这个题目输出比较麻烦,在DP过程中,用一个二维数组记录求得i到j之间最优解的时候,是哪个矩阵在前面。通过递归的方式输出,
阅读全文
摘要:最近觉得动态规划真的很练脑子,对建模以及思维方法有很大帮助,线段树被卡到有点起不来的感觉最近仔细思考了一下动态规划的思想,无非是由局部最优解得到全局最优解,由此类推,发现,像最短路和最小生成树其实都是动态规划的思想在里面。这题Chopstick,在建立状态 和 怎样递推 是两个难点。在建立状态方面,通过dp[i][j],n-i+1为可选的筷子数,j为已选筷子组数,所以最终要求的结果自然是 dp[1][k].递推方面,要注意两个细节,第一,每一组的那两根短筷子,必定是相邻的,可以反证法证明。第二,那根长筷子,如果采取逆推方式,就可以不用管了,因为逆推只要保证前面有长筷子即可。。。for(i=..
阅读全文
摘要:校队选拔神马的事情就不说了,哥们反正是要崛起的人了!感谢何骐的提醒。校队选拔的时候又被二分给坑了,所以还想做几道二分搜索的题目来练练手。C -Three Base StationsTime Limit:2000MSMemory Limit:262144KB64bit IO Format:%I64d & %I64uSubmitStatusPracticeCodeForces 51CDescriptionThe New Vasjuki village is stretched along the motorway and that's why every house on it i
阅读全文

浙公网安备 33010602011771号