随笔分类 -  dp

摘要:题目大意就是数字中不能出现 62 和4代码:/************************************************************************* > File Name: 2089.cpp > Author: minshik > Cr... 阅读全文
posted @ 2014-05-22 01:22 doubleshik 阅读(174) 评论(0) 推荐(0)
摘要:在矩阵中取数字, 要求不能去十字相邻的数字。。 感觉第一次做状态压缩的题目 。。一开始没什么想法就看了别人的解题。用二进制表示一行中元素是否取, 先枚举出一行取的可能性。 dp[i][j] 表示第i行第j种可能性。dp[i][j] = dp[i-1][k]+ tmp;先枚举每一种可能性,然后用for生成一个符合status[j] 的tmp , 然后再枚举每一种可能性 status[k]去和j比较。如果不矛盾,就认为i-1行是k的方案,i行是j的方案, 然后比较dp的大小。最后枚举dp[n][j]出最大值题目:方格取数(1)Time Limit: 10000/5000 MS (Java/Othe 阅读全文
posted @ 2014-02-09 23:14 doubleshik 阅读(182) 评论(0) 推荐(0)
摘要:题目比较长 , 就是给出 一些点的连线, 要求留下最多的线让他们不相交数据量比较大, 用二分的LIS题目:Bridging signalsTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 9862Accepted: 5397Description'Oh no, they've done it again', cries the chief designer at the Waferland chip factory. Once more the routing designers have screwed 阅读全文
posted @ 2014-02-06 17:59 doubleshik 阅读(210) 评论(0) 推荐(0)
摘要:题目的意思是给出一个序列,要求变成单调不上升或者单调不下降。 代价是 |A-B| 的总和网上都是说离散化。。虽然还是不太明白但是这道题终于有点感觉了首先可以看出变化后的序列中所有的数一定还在原数列中, 那么先对原数列排序a b1 3 2 4 5 3 9 -> 1 2 3 3 4 5 9然后dp[i][j] 表示第i个数, 把他变成 b[j] 所要画的最小代价dp[i][j] = dp[i-1] [ 0~j] + abs(b[j] - a[i]) 以此循环。虽然这道懂了但是感觉这个思路还是有点别扭。。智商拙计。。题目:Making the GradeTime Limit: 1000MSMe 阅读全文
posted @ 2014-02-06 17:37 doubleshik 阅读(532) 评论(0) 推荐(0)
摘要:问题给出n个木头, 每个木有有li , wi的属性, 如果后一根木头的li>=li-1 且wi>=w-1 那么不需要等加工时间, 否则加1.第一根木头总要1个时间的加工时间,问最少需要多少时间首先根据木头的某一个属性排序, 然后求 最长下降子序列( 等于求出最长不下降的 个数) 题目:Wooden SticksTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 17044Accepted: 7121DescriptionThere is a pile of n wooden sticks. The length and 阅读全文
posted @ 2014-02-05 22:52 doubleshik 阅读(194) 评论(0) 推荐(0)
摘要:奶牛们上天了。。 有n种材料,每种材料高hi , 限制最大放置高度ai , 有ci块, 问能搭多高首先对每种材料按照ai排序, 然后从小到大, dp[i][j] 表示前i中材料在j的高度下,第i种能剩多少,最后只要从amax往下判断第一个>=0的就可以了题目:Space ElevatorTime Limit: 1000MSMemory Limit: 65536KTotal Submissions: 7638Accepted: 3606DescriptionThe cows are going to space! They plan to achieve orbit by building 阅读全文
posted @ 2014-02-05 20:46 doubleshik 阅读(228) 评论(0) 推荐(0)
摘要:与昨天一道类似的多重集组合数问题每个家族有n个蚂蚁,一共T个家族, 问从S到B能有多少组合可能题目:G - Ant Counting Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit StatusAppoint description:DescriptionBessie was poking around the ant hill one day watching the ants march to and fro while gathering food. She realized 阅读全文
posted @ 2014-02-05 19:25 doubleshik 阅读(649) 评论(0) 推荐(0)
摘要:dp[i][j] 表示 用 前i种前能 凑成j 元的方法数。dp[i][j] = dp[i-1][j] + dp[i][j- (i+1)] 因为我i是从0开始的。。 所以i+1 表示第i中的值最后要用一下高精度题目:H - Dollar Dayz Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit StatusAppoint description:DescriptionFarmer John goes to Dollar Days at The Cow Store and discov 阅读全文
posted @ 2014-02-04 21:37 doubleshik 阅读(201) 评论(0) 推荐(0)
摘要:题目大意是给出一些面值的硬币和数量。问在1-m中能凑出多少种钱。设 dp[i+1][j] 为前i种凑成j元第i种最多剩下多少。1. dp[i+1][j] = mi ( dp[i][j]>=0) 前i-1种已经能凑成j了2.dp[i+1][j] = -1 ( j 2 #include 3 #include 4 using namespace std; 5 6 int n,m; 7 int A[200]; 8 int C[200]; 9 int dp[100000+10];10 int main()11 {12 while(scanf("%d%d",&n,& 阅读全文
posted @ 2014-02-04 17:35 doubleshik 阅读(219) 评论(0) 推荐(0)
摘要:与矩阵乘法链相似。题目:描述在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量 珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只 有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头 标记为m,尾标记为r,后一颗能量珠的头标记为r,尾标记为n,则聚合后释放的能量为(Mars单位),新产生的珠子的头标记为m,尾标记为n。需要时,Mars人就用吸盘夹住相邻的两颗珠子,通过聚合得到能量,直 阅读全文
posted @ 2014-02-02 13:54 doubleshik 阅读(251) 评论(0) 推荐(0)
摘要:这道题以前做过一次但是这次做又卡了一下。。 对环形就拆成链来做 , 枚举每一个开头。 之后类似区间处理 , 蛋疼的一点是在 r-l 2 #include 3 using namespace std; 4 #define LL long long 5 #define max(a,b) a>n>>m;59 memset(dp,-1,sizeof(dp));60 memset(dpmin,-1,sizeof(dp));61 for(int i=0;i>num[i];64 num[i]= (num[i]%10+10)%10;65 }66 LL... 阅读全文
posted @ 2014-02-02 00:54 doubleshik 阅读(591) 评论(0) 推荐(0)
摘要:求dp比较水。。但是打印路径很蛋疼。。搞了好久还学习了别人的递归写法题目:背景给定一个正整数序列a(1),a(2),...,a(n),(1 2 using namespace std; 3 #define INF 999999 4 int n; 5 int num[30]; 6 int sum[30]; 7 int dp[30][30]; 8 int G[30][30]; 9 10 int dfs( int L ,int R)11 {12 int &d = dp[L][R];13 if( d !=INF) return d;14 15 if(L == R) return... 阅读全文
posted @ 2014-02-01 23:30 doubleshik 阅读(278) 评论(0) 推荐(0)
摘要:一道不知道是不是树形dp的水题。。就是选了一个点不能选他的父亲和儿子。 求一个最大值见代码描述Arthur公司是一个等级森严的公司,它们有着严格的上司与下属的关系,公司以总 裁为最高职位,他有若干个下属,他的下属又有若干个下属,他的下属的下属又有若干个下属……现接近年尾,公司组织团拜活动,活动中有一部分是自由舞会,公 司的每个职员都有一个搞笑值,现要你制定一套哪些人上台的方案,使得台上所有演员的搞笑值最大。当然,职员们是不会和他们的顶头上司一起上台的。格式输入格式第一行一个整数N,表示这个公司总共的职员个数。接下来一行有N个整数,由空格隔开,第i个整数表示职员i的搞笑值Ai(-1327670≤ 阅读全文
posted @ 2014-02-01 22:22 doubleshik 阅读(235) 评论(0) 推荐(0)
摘要:dp[l,r] =max(dp[l,k]*dp[k+1,r] + G[k] ) l 2 using namespace std; 3 #define LL long long 4 int n; 5 int mid[50]; 6 int first[50][50]; 7 int dp[50][50]; 8 int dfs(int L,int R) 9 {10 int &d = dp[L][R];11 if(d)return d;12 if( R-L ==1)13 {14 first[L][R] = L;15 ... 阅读全文
posted @ 2014-02-01 22:20 doubleshik 阅读(178) 评论(0) 推荐(0)
摘要:题目大意就是用最多M 块木板去修天花板, 要求最后用掉的木板长度最小。这道题最好的是用贪心解。 做的时候我用了dp想法比较简单, 参考nocow 贪心的想法比较巧妙感觉题目:Barn RepairIt was a dark and stormy night that ripped the roof and gates off the stalls that hold Farmer John's cows. Happily, many of the cows were on vacation, so the barn was not completely full.The cows sp 阅读全文
posted @ 2014-01-31 19:24 doubleshik 阅读(330) 评论(0) 推荐(0)
摘要:题目大意就是给出 N门课, 然后给出每门课花m天的收益,问在天数一定的情况下最大收益ans[x][r] 表示前x节课在r天的情况下的最佳情况for ( int i= 0, r)ans[x][r] = max( ans[x][r] , ans[x+1][r-i] + cl[x][i])用了for和dfs两种方法写题目:ACboy needs your helpTime Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3368Accepted Submiss 阅读全文
posted @ 2014-01-11 23:28 doubleshik 阅读(142) 评论(0) 推荐(0)
摘要:用记忆化搜索做了一下题目:P1104采药Accepted标签:NOIP普及组2005[显示标签]描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有 威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株 都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价 值最大。” 如果你是辰辰,你能完成这个任务吗?格式输入格式输入的第一行有两个整数T(1 4 #include 5 #incl.. 阅读全文
posted @ 2014-01-11 22:53 doubleshik 阅读(322) 评论(0) 推荐(0)
摘要:给出一个tape的最大时常,再给出一些CD的长度, 问最多能copy多少到tape上,要求打印哪些cd要打印路径就在计算的时候记录一下前一个是什么, 然后递归打印 。。 注意tape最大时间设置大一点,一开始1000wa了题目:CDYou have a long drive by car ahead. You have a tape recorder, but unfortunately your best music is on CDs. You need to have it on tapes so the problem to solve is: you have a tape N mi 阅读全文
posted @ 2014-01-01 18:45 doubleshik 阅读(212) 评论(0) 推荐(0)
摘要:题目大意是一家人去超市抢购, 每个人的能力有限,问全家一共能搬走多少价值最大的东西就是对每个人做一次01背包。累加总和。。 注意给数组初始化只需要 0 那一行题目:SuperSaleThere is a SuperSale in a SuperHiperMarket. Every person can take only one object of each kind, i.e. one TV, one carrot, but for extra low price. We are going with a whole family to that SuperHiperMarket. Ever 阅读全文
posted @ 2014-01-01 17:21 doubleshik 阅读(213) 评论(0) 推荐(0)
摘要:同时满足爸妈要求的城市题目:Problem E: VacationThe ProblemYou are planning to take some rest and to go out on vacation, but you really don't know which cities you should visit. So, you ask your parents for help. Your mother says "My son, you MUST visit Paris, Madrid, Lisboa and London. But it's only 阅读全文
posted @ 2013-12-29 21:02 doubleshik 阅读(259) 评论(0) 推荐(0)