动态规划
iDev9
iOS Developer
展开
-
hdu1058humble numbers
题目:hdu1058方法:①从5开始,判断每一个数是否是humble numbers,一直判断到2000000000,显然这样会超时,这也是没办法的办法,就是把满足条件的都输出来,然后把它们存到一个数组里面,这样虽然字节数很多,过还是能够过的。int judge(long n) { while(n%2==0)n/=2; while(n%3==0)n/=3; while(n%5==0)n/=5; while(n%7==0)n/=7; if(n==1)retu原创 2010-08-17 13:22:00 · 449 阅读 · 0 评论 -
hdu1243 反恐训练营
题目:hdu1243方法:动态规划思想:本题是最长公共子序列的变种,dp[i][j]代表遇到第j个恐怖份子使用第i颗子弹的最大得分。若in[i-1]与out[j-1]相等,即此时的子弹恰好可以用来击毙恐怖分子,因此 dp[i][j]=dp[i-1][j-1]+score[in[原创 2011-07-14 19:50:45 · 1814 阅读 · 0 评论 -
pku1080 Human Gene Functions
题目链接:pku1080 hdu1080 tzc1287 方法:动态规划 思想:本题是最长公共子序列的变种,只是将最长长度换成最大匹配 值,可以用一个二维数组w保存两个字符的匹配度。本题中用一个数组 dp[[i][j]表示第一个字符串的前i个字符与第二个原创 2011-08-05 19:14:29 · 433 阅读 · 0 评论 -
tzc2668 Lecture Halls (会议安排)
题目链接:tzc2668 方法:贪心 思想:先将会议进行排序,开始时间早的到前面,然后循环,将可以在一个会场可以进行的会议 标记为1,最后外循环次数就是答案。 代码: #include #include #include using namespace std;原创 2011-07-31 14:58:03 · 1144 阅读 · 0 评论 -
pku1083 Moving Tables
题目链接:pku1083 方法:贪心 思想: 代码: #include #include #include using namespace std; struct node {int x,y; }; bool cmp(node a,node b) { if原创 2011-07-31 15:00:47 · 569 阅读 · 0 评论 -
tzc1100 Home Work
题目链接:tzc1100 方法:贪心 思想:注意本题是典型的部分背包问题,而不是0-1背包问题。如果他有时间,可以将 某份卷子做部分答案。可以按价值比从大到小排序,然后从第头开始,如果这个的时间 小于剩余时间就将其价值加上,否则加上相应的部分价值,跳出循环即可。 代原创 2011-07-31 16:56:37 · 805 阅读 · 0 评论 -
pku2593MaxSequence
题目链接:pku2593代码:// 2 using namespace std; int a[100005],s[100005],e[100005]; int main() { int n; while(scanf("%d",&n)!=EOF&&n) { int i原创 2010-08-20 17:54:00 · 497 阅读 · 0 评论 -
hdu1069Monkey and Banana
<br />题目链接:hdu1069<br /> <br />代码:<br /> <br />//one block could only be placed on top of another block as long as the two base dimensions of the // upper block were both strictly smaller than the corresponding base dimensions of the lower block //write原创 2010-08-22 11:08:00 · 354 阅读 · 0 评论 -
hdu1466计算直线的交点数
题目链接:hdu1466解题思路:摘自杭电课件动态规划1 分析加入第N条直线的情况(这里以N=4为例): (分类方法:和第N条直线平行的在a组,其余在b组) 1、第四条与其余直线全部平行 => 0+4*0+0=0; 2、第四条与其中两条平行,交点数为0+(n-1)*1+0=3; 3、第四条与其中一条平行,这两条平行直线和另外两点直线的交点数为(n-2)*2=4,而另外两条直线既可能平行也可能相交,因此可能交点数为: 0+(n-2)*2+0=4 或者 0+(n-2)*2+1=5 4、原创 2010-08-21 17:17:00 · 559 阅读 · 0 评论 -
hdu1176免费馅饼
<br />题目链接:hdu1176<br /> <br />思路:<br />/*<br />动态规划 <br />状态表示:dp[i,j]为j秒时在i位置的最大值<br />状态转移:i=0 dp[0][j] += Max(dp[0][j+1], dp[1][j+1]);<br /> i=10 dp[10][j] += Max(dp[10][j+1], dp[9][j+1]);<br /> i=1-9 dp[i][j] += Max(dp[i][j+1], d转载 2010-08-19 21:09:00 · 2775 阅读 · 0 评论 -
zjut1381 字符串的编辑距离
题目链接:zjut1381 方法:动态规划 思想: 代码一: #include #include using namespace std; int num[1005][1005]; int main(int argc, char *argv[]) { char s原创 2011-08-05 15:01:55 · 514 阅读 · 0 评论