HDU4540 威威猫系列故事——打地鼠 and 1176免费馅饼
来源:互联网 发布:sql查询身份证号码 编辑:程序博客网 时间:2024/05/16 18:55
题目链接 打地鼠:点击打开链接
免费馅饼:点击打开链接
这两道题有相似之处,却又有所不同。
对于 免费馅饼 ,因为初态是确定的,接到的第一个馅饼的位置是5(题意已给),所以用从下往上的dp较为方便。而打地鼠,初态和末态都不确定,所以初始与末尾的地位是对等的,所以从上往下和从下往上的处理是一样一样的。结果也如所料,提交了这两种代码都可以过,因为它们本质是相同的。
这两道题,唯一的区别,也就是dp找最值时略有不同。免费馅饼只需从j-1,j,j+1这三个中求最值。而打地鼠则要扫描整个这一层。
打地鼠代码
#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<iomanip>#include<algorithm>#include<cmath>using namespace std;const int M=100000;int main(){ int a[50][50],dp[50][50]; int n,k,i,j; while(cin>>n>>k) { memset(dp,0,sizeof(dp)); for(i=0; i<n; i++) { for(j=0; j<k; j++) cin>>a[i][j]; } for(i=n-2; i>=0; i--) { for(j=0; j<k; j++) { int tmp=100000; for(int c=0; c<k; c++) if(tmp>dp[i+1][c]+abs(a[i][j]-a[i+1][c])) tmp=dp[i+1][c]+abs(a[i][j]-a[i+1][c]); dp[i][j]=tmp; } } int Min=dp[0][0]; for(i=0; i<k ; i++) { if(Min>dp[0][i]) Min=dp[0][i]; } cout<<Min<<endl; } return 0;}
免费馅饼代码
#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<iomanip>#include<algorithm>#include<cmath>using namespace std;int a[12][100000];int sum[12][100000];int main(){ int n; while(cin>>n && n) { int Maxi=0,Maxj=0,cnt; memset(a,0,sizeof(a)); memset(sum,0,sizeof(sum)); int i,j; for(cnt=0; cnt<n; cnt++) { cin>>i>>j; a[i][j]++; if(Maxi<i) Maxi=i; if(Maxj<j) Maxj=j; } for(j=Maxj; j>=0; j--) { for(i=0; i<=Maxi; i++) { if(j==Maxj) { sum[i][j]=a[i][j]; } else { if(i>0) sum[i][j]=a[i][j]+max(sum[i-1][j+1],max(sum[i][j+1],sum[i+1][j+1])); else sum[i][j]=a[i][j]+max(sum[i][j+1],sum[i+1][j+1]); } } } cout<<sum[5][0]<<endl; } return 0;}
0 0
- HDU4540 威威猫系列故事——打地鼠 and 1176免费馅饼
- HDU4540 ——威威猫系列故事——打地鼠
- HDU4540 威威猫系列故事——打地鼠
- hdu4540 威威猫系列故事——打地鼠
- hdu4540 - 威威猫系列故事——打地鼠 (经典dp)
- hdu4540 威威猫系列故事——打地鼠 (动态规划)
- hdu4540 威威猫系列故事——打地鼠 (dp)
- hdu4540(威威猫系列故事——打地鼠)-线性dp
- hdu4540 威威猫系列故事——打地鼠(简单DP)
- 威威猫系列故事——打地鼠
- 威威猫系列故事——打地鼠
- 威威猫系列故事——打地鼠
- 威威猫系列故事——打地鼠
- 威威猫系列故事——打地鼠
- 威威猫系列故事——打地鼠
- hdu 4540 威威猫系列故事——打地鼠
- HDU-4540-威威猫系列故事——打地鼠
- Hdu 4540 威威猫系列故事——打地鼠
- Storm入门教程 第五章 一致性事务
- Hive安装、配置及基本测试
- linux常用命令
- 【Leetcode长征系列】Best Time to Buy and Sell Stock II
- 线性表的链式存储
- HDU4540 威威猫系列故事——打地鼠 and 1176免费馅饼
- JAVA中的反斜杠
- Android仿IOS回弹效果 ScrollView回弹 总结
- WIN7 旗舰版 只有“睡眠”没有“休眠”,要怎样添加“休眠”功能?
- Cocos2d-x 场景切换动画大全
- EEPlat 的 后台业务处理模型
- 私有IP
- SWTBOK测试实践系列(7) -- 测试用例设计的参考输入有哪些?
- 关于引导页的设置