上一页 1 ··· 8 9 10 11 12 13 14 下一页
2013年3月24日

poj1949

摘要: poj水题。。直接上代码 1 /* 2 State:Accepted 3 Time:2013-03-12 00:42:31 4 */ 5 #include <iostream> 6 #include <cstring> 7 #include <string> 8 #include <cstdlib> 9 #include <cstdio>10 #include <algorithm>11 #include <cmath>12 #include <queue>13 using namespace st 阅读全文
posted @ 2013-03-24 00:19 yzcstc 阅读(174) 评论(0) 推荐(0) 编辑

poj1853

摘要: 题意:给一堆物品分成两堆,两堆总重量相差不到百分之2。。。思路:本题是个好题。。很新颖的dp。。 因为n与给定的数字都不超过100,且允许误差为2%,所以我们可以进行放大,把小数化成整数,这样就可以进行dp了。。具体是把所有总数看成20000粉,然后按比率分配。。分配为进行背包。。/* State:Accepted Time:2013-03-12 00:12:37*/#include <iostream>#include <cstring>#include <string>#include <cstdlib>#include <cstdio 阅读全文
posted @ 2013-03-24 00:15 yzcstc 阅读(368) 评论(0) 推荐(0) 编辑

poj1821

摘要: 题意大致是有k个粉刷匠,要粉刷n面墙,分别站在某一面墙si的前面,他们每个人只愿意刷li面墙,而且每刷一面需要给pi的工钱,题目要求最多能发多少工钱。思路:斜率优化dp 思路跟http://www.cnblogs.com/yzcstc/articles/2870355.html这里面说的差不多 1 /* 2 State:Accepted 3 Time:2013-03-11 23:03:01 4 */ 5 #include <iostream> 6 #include <cstring> 7 #include <string> 8 #include <cs 阅读全文
posted @ 2013-03-24 00:07 yzcstc 阅读(230) 评论(0) 推荐(0) 编辑

poj1770

摘要: 题目意思:给定N个数,在给定M个数,现在在N中取数,满足取到得数任意两者之差都不等与M个数中的任意一个。。求最多取多少个数。思路:把有冲突的数之间连一条边(这样出来竟然没环,而是数,太神奇了) 然后进行树形dp f[i][0]表示第i个节点不取取得的最大个数 f[i][1]则表示取 f[i][0] = sigma(max(f[j][0],f[j][1])); f[i][1]= sigma(f[j][0]); j为i的子树。。 1 /* 2 Time:2013-03-11 09:23:07 3 State:Accepted 4 */ 5 #includ... 阅读全文
posted @ 2013-03-24 00:03 yzcstc 阅读(178) 评论(0) 推荐(0) 编辑
2013年3月23日

poj1732

摘要: 题目大意:给你一个a..z与数字的对应表及一些单词 再给你一个目标串数字串。。问你最少用那些单词可以拼成数字串。。思路:dp f[i]表示前i个最少用几个单词拼成 f[i]= f[i - len[k]] + 1 (第k个单词对应数字正好相符) 1 /* 2 State:Accepted 3 Time:2013-03-10 14:35:57 4 */ 5 #include <cstring> 6 #include <string> 7 #include <fstream> 8 #include <cstdlib> 9 #include <cs 阅读全文
posted @ 2013-03-23 23:49 yzcstc 阅读(172) 评论(0) 推荐(0) 编辑

poj1726

摘要: 黑书上的题目的加强版思路差不多。。这届看黑书p117例题4 ”舞蹈家“怀特先生 1 /* 2 State:Accepted 3 Time:2013-03-10 02:44:14 4 */ 5 #include <iostream> 6 #include <cstring> 7 #include <string> 8 #include <cstdlib> 9 #include <cstdio> 10 #include <algorithm> 11 #include <cmath> 12 const int num 阅读全文
posted @ 2013-03-23 23:40 yzcstc 阅读(261) 评论(0) 推荐(0) 编辑

poj1722

摘要: 题意:给定n个数,每次可对一相邻的数进行合并,合并的操作为a[i] -a[i+1] 操作完形成n-1数,在进行同样操作,最后只剩下一个数。。为给定的值。。 求如何操作。。思路:dp 因为只能用-号,而减完得数等下再减去他,--就为+了。。 这样实质就是往里面添加+ 或-。。 就变成了背包问题了。。 1 /* 2 State:Accepted 3 Time:2013-03-10 02:03:30 4 */ 5 #include <iostream> 6 #include <fstream> 7 #include <cstring> 8 #include < 阅读全文
posted @ 2013-03-23 23:35 yzcstc 阅读(226) 评论(0) 推荐(0) 编辑

poj1704

摘要: 题目意思:给定若干个棋子的位置,每次可以向左移动一个棋子几个位置,最终无法移动者输。。思路:博弈论题目。。 第一次做到这种题目,没什么思路。。参考这位大 神http://www.cnblogs.com/rainydays/archive/2011/09/29/2195649.html 1 #include <iostream> 2 #include <cstdlib> 3 #include <cstdio> 4 #include <cstring> 5 #include <algorithm> 6 using namespace st 阅读全文
posted @ 2013-03-23 23:27 yzcstc 阅读(122) 评论(0) 推荐(0) 编辑

poj1699

摘要: 题目:给你一些序列,要求进行合并合并完最短。eg,AGCT与CTAA 可以合并成AGCTAA(CT相同)思路:先进行预处理,处理出i串与j串合并完的程度。。 然后进行dp或者记忆化搜索 因为n很小,所以我们可以进行状态压缩 用一个 <2^10的数来表示该字符串连接了没,所以 f[i][j]表示此时状态为J,最后一个放的是第I个的最短长度 f[i][j] = f[k][j + (1 <<k - 1)]+s[k] - len[i][k] ( i放过且k没放过,len[i][k],表示k接在相同字母数 ) 1 、* 2 State:Accepted 3 Ti... 阅读全文
posted @ 2013-03-23 23:21 yzcstc 阅读(209) 评论(0) 推荐(0) 编辑

poj1682

摘要: 题目大意:在三个河岸X,Y,Z上分别有n,m,k个部落,要求用最少的费用,使每个部落都能通过至少一座桥与其它河岸联系. 期中桥梁不能交叉.每条桥梁需要的费用为两个部落海拔差的绝对值.思路:两两进行dp。。然后枚举交点在进行dp一次。。 即多重dp 1 /* 2 State:Accepted 3 Time:2013-03-08 20:49:50 4 */ 5 #include <iostream> 6 #include <fstream> 7 #include <cstdio> 8 #include <cstdlib> 9 #include < 阅读全文
posted @ 2013-03-23 21:45 yzcstc 阅读(174) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 下一页