摘要: 1 /* 2 题意: 选出多个字母组成回文,可以不连续,最长是多少。 3 4 记忆化搜素. 5 如果str[l]==str[r],dp[l][r]=dfs(l+1,r-1)+2, 6 否则 dp[l][r]=dfs(l+1,r), dfs(l,r-1)); 7 */ 8 9 #inclu... 阅读全文
posted @ 2015-10-23 21:57 Ember 阅读(213) 评论(0) 推荐(0) 编辑
摘要: /*题意:n 个数 AB两个人轮流从左或右端取连续的数,每个人都按最优策略取,A先取,问最后A 比 B 多多少 。区间DP。 用f[i][j]表示区间 i-j 能取的数的总和是多少, 如果从左端取,f[i][i+k]=max(f[i][i+k], (sum[i+k]-sum[i-1])-f[i][j... 阅读全文
posted @ 2015-10-23 21:13 Ember 阅读(510) 评论(0) 推荐(0) 编辑
摘要: /*题意: 给若干字符串,添加最少的字符把它们变成回文 ,并输出回文。记忆化搜索,如果s[i]==s[j],dp[i][j]=dfs(i+1,j-1);否则 dp[i][j]=min(dp[i][j],dfs(i+1,j),dfs(i,j-1);最先开始也不造怎么输出,后来看了题解,递归输出 ,新姿... 阅读全文
posted @ 2015-10-21 21:57 Ember 阅读(169) 评论(0) 推荐(0) 编辑
摘要: /*题意: 有t组测试数据,每组数据的开始给出终点的位置,然后接下来有若干对数x,y,x表示沿途的加油的位置,y表示每升油的价格。每组数据间有一个空行。汽车油箱容量是200升。 汽车开始的时候在位置0,油箱里有100升汽油,问最后到达终点,且油箱里还有100升汽油所需的最小花费是多少。先开始没啥思路... 阅读全文
posted @ 2015-10-21 20:03 Ember 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:有很多乌龟,每只有它的重量和承重,包括它自己的重量, 3 例如 重 300g,承重1000g,则实际承重700. 4 问最多有多少只乌龟可以叠在一起。 5 6 定义dp[i][j]为第 i 只乌龟 叠到第 j 层的重量。 7 则当 a[i].p-a[i].w>=dp[j-1... 阅读全文
posted @ 2015-10-20 19:39 Ember 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意; 由题可知21种货币, 给出N,问有多少种组合方式。 3 简单DP以前写过啊w(?Д?)w,又纠结好久才发现转移方程那里的 += 写成 = 。(- -||) 4 转移方程 dp[j] += dp[j-w[i]] ; 5 对于每一种货币,组合方式等于现有的加上之前有的 。 6... 阅读全文
posted @ 2015-10-19 21:51 Ember 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:对一个字符串进行删除操作,有多少种方式使剩下的串是回文。 3 也可理解为这个串有多少回文子串。 4 定义 dp[i][j]为 i-j有多少个回文子串。 5 当str[i]==str[j], 6 dp[i][j]=dp[i+1][j-1]+1, 因为如果把i+1至j-1都... 阅读全文
posted @ 2015-10-19 21:10 Ember 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意: 有t组测试数据,给出n,m. m个数升序,要从m个数中选出n+8对三元组。 3 要求这三个数x=j*3 就可以有更长的筷子与选出来的两根配对。 9 对于第 i 根筷子,10 如果不参与第 j 对 ,那么问题转化成从 i-1 根里选 j 对;11 如果参与,那么就是从 i-... 阅读全文
posted @ 2015-10-18 21:50 Ember 阅读(245) 评论(0) 推荐(0) 编辑
摘要: = =| N久之后再写...... 阅读全文
posted @ 2015-10-16 21:20 Ember 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 1 /*题意 2 共有 T 组测试 3 输入N ,S,表示有n种物品, 4 接下来N行 5 输入x,y 。每种物品有x, y两个价值,并且可以有无限多个。 6 使得(x1+x2+....)^2 + (y1+y2+....)^2 = s ^ 2。 7 输出最少要多少个物品,如果不可能则输出not... 阅读全文
posted @ 2015-10-15 22:01 Ember 阅读(177) 评论(0) 推荐(0) 编辑