上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 48 下一页
  2012年9月12日
摘要: http://acm.timus.ru/problem.aspx?space=1&num=1244背包题 理解并不难主要在于如果答案有多个要输出 -1一个答案的话要输出结果 否则输出 0用 sum [ n ] 表示到 n 有几条路径状态转移方程为if(sum[j-a[i]])//a[i]表示第i个数据的大小{ sum[j]=max(sum[j]+1,sum[j-a[i]]);}代码及其注释:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm># 阅读全文
posted @ 2012-09-12 16:37 夜-> 阅读(233) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4283三维dpans [ l ][ r ][ k ] 表示从 l 到 r 这一段 第一个出去的人需要 *k代码:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N=102;const int INF=0x0fffffff;int a[N];int ans[N][N][N];int dp(int l,int 阅读全文
posted @ 2012-09-12 10:12 夜-> 阅读(174) 评论(0) 推荐(0) 编辑
  2012年9月11日
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4276树形dp 比赛时时间不够了没写基本思路:先求是否能到达 如果能到达求每个子树在一定时间下的最优解ans[i][j] 表示的是 以 i 的父节点为根的子树 还有j 时间时的最优解注意的是 到n的路径必须走无需返回 其他的可以走且需要返回还有一条路所花时间可能是 0 (这里让我wa了N久呀)代码及其注释:#include <iostream>#include <cstdio>#include <cstring>#include <map>#include &l 阅读全文
posted @ 2012-09-11 19:52 夜-> 阅读(227) 评论(0) 推荐(0) 编辑
  2012年9月6日
摘要: http://acm.timus.ru/problem.aspx?space=1&num=1495说是有dp 和 bfs 两种解法 用 dp不知道其他人怎么做的我开 int[30][1000000] 直接搜 会超内存 没想到好的方法所以还是 bfs 吧结果超时 一直以为Timus 的数据够水 不过 这个题还是超时了经过不断的优化才过的思路:广搜时记录某个模 是否已经出现 出现了则无需再次入队列 否则入队列 并记录相关信息当所有的长度在30以内的可用数全出现了时 马上停止搜索 这一步很关键 大大减少时间代码及其注释:#include <iostream>#include &l 阅读全文
posted @ 2012-09-06 17:10 夜-> 阅读(226) 评论(0) 推荐(0) 编辑
  2012年9月5日
摘要: http://acm.timus.ru/problem.aspx?space=1&num=1152有水了 dfs居然能过#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N=50;const int INF=0x7fffffff;int a[N];int ans;int n;void dfs(int L,int an,int I){ for(int i=1;i<=n;++i) 阅读全文
posted @ 2012-09-05 15:51 夜-> 阅读(181) 评论(0) 推荐(0) 编辑
  2012年9月4日
摘要: http://acm.timus.ru/problem.aspx?space=1&num=1346题目超级水代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<string>#include<vector>#include<set>#include<queue>#include<stack>#include<cmath>#define LL long lon 阅读全文
posted @ 2012-09-04 16:39 夜-> 阅读(169) 评论(0) 推荐(0) 编辑
  2012年9月3日
摘要: http://acm.timus.ru/problem.aspx?space=1&num=1513此题需要用到大整数 我是用万进制 输出时要注意不要多输出0思路方面 可以先想出来二维的解法 然后发现二维的可以转化为一维的 代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<string>#include<vector>#include<set>#include<queue>#inc 阅读全文
posted @ 2012-09-03 21:52 夜-> 阅读(184) 评论(0) 推荐(0) 编辑
  2012年8月24日
摘要: http://acm.timus.ru/problem.aspx?space=1&num=1303简单dp 排序枚举就可以 不过由于M最多可以是5000所以需要用到一定的优化 比如说 既然要覆盖 0---m 那么在0左边的区间 和在m右边 的区间 和被其他区间包含的区间 都应该去掉代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<string>#include<vector>#include<se 阅读全文
posted @ 2012-08-24 10:25 夜-> 阅读(477) 评论(2) 推荐(0) 编辑
  2012年8月22日
摘要: http://acm.timus.ru/problem.aspx?space=1&num=1501dp+记忆话搜索给你两个长度为n的0 1 串总和有n个0 和n个1求一个新串 要求任意前i项 0的个数 和1的个数 差不能超过1ans[i][j] 表示要想到第一个串的第i个 第二个串的第j个时 上一个应选那个串的字符 0代表无法选 即无答案sum[i][j] 表示对应ans 的和(-1表示‘0’ 1 表示‘1’ )这样它的绝对值不超过1就行了代码:#include<iostream>#include<cstdio>#include<cstring>#i 阅读全文
posted @ 2012-08-22 21:04 夜-> 阅读(245) 评论(0) 推荐(0) 编辑
摘要: http://acm.timus.ru/problem.aspx?space=1&num=1741题目大意:主人翁需要升级客户端 现在的版本是 1 Licensed想以最快速度升级到版本 nm 个upgrade programs每一个都有属性 x y d s表示可以将版本x 升级到版本 y d为它的大小 越小下载越快 s为类型 有 Licensed Cracked Pirated三种升级是有限制的 从x开始升级必须 当前版本就是x 一旦被Pirated升级后 无论再用什么类型升级 都还是 PiratedLicensed不可以在Pirated版本上升级要求所以用到的软件的d的和 最小存在 阅读全文
posted @ 2012-08-22 19:07 夜-> 阅读(194) 评论(0) 推荐(0) 编辑
上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 48 下一页