动态规划
文章平均质量分 66
诺诺罗亚
固执!!!!!!!!!
展开
-
HDU 1203 I NEED A OFFER!
#include#includedouble min(double a,double b){ if(a>b) return b; else return a;}int main(){ int i,j,n,m,c; double v; double dp[10010]; while(scanf("%d%d",&n,&m)!=EOF&&(n||m)) { for(i=原创 2014-11-16 10:15:54 · 349 阅读 · 0 评论 -
HDU 3033 I love sneakers!
分组背包问题 注意两个if的顺序原创 2014-11-16 10:29:42 · 346 阅读 · 0 评论 -
HDU 1025 Constructing Roads In JGShining's Kingdom
太强了 !!!!!!!!膜拜啊!!摘:链接:http://acm.hdu.edu.cn/forum/read.php?tid=15580&fpage=0&page=1假设存在一个序列d[1..9] = 2 1 5 3 6 4 8 9 7,可以看出来它的LIS长度为5。下面一步一步试着找出它。我们定义一个序列B,然后令 i = 1 to 9 逐个考察这个序列。此外,我原创 2015-01-26 15:58:39 · 538 阅读 · 0 评论 -
HUD 3466
题意就不解释了,要拥有足够的钱才能买对应价值的物品;这里应该按ss-cc排序 而不是按ss排序!因为for(j=m;j>=q[i].ss;j--){dp[j]=max1(dp[j],dp[j-q[i].cc]+q[i].vv);} 当j最小时可以写成 dp[j]=max1(dp[j],dp[q[i].ss-q[i].cc]+q[i].vv); !!!!!!!原创 2015-01-12 15:44:50 · 500 阅读 · 0 评论 -
zoj 3471状态压缩DP
#include#includeint max(int a,int b){ if(a>b) return a; return b;}int dp[100000],map[15][15],mark[15];int main(){ int i,j,n,m,k; while(scanf("%d",&n)!=EOF&&n) { for(i=1;i<=n;i++) for原创 2015-01-23 21:36:19 · 540 阅读 · 0 评论 -
POJ 1185 炮兵阵地 经典状态压缩DP
先说下我个人的理解啊!因为炮的攻击范围是上下左右两个格子 所以dp数组里面要保证存有第i行的状态和第i-1行的状态,一个三维数组搞定,同样判断的时候也要判断两行!其他的跟poj3254没什么区别!Description司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示)原创 2015-01-21 14:51:46 · 467 阅读 · 2 评论