hdu2571-递推的思考-递推的逻辑
来源:互联网 发布:javascript实战 pdf 编辑:程序博客网 时间:2024/05/22 03:54
要睡 了, 先占个坑。明天在更。
交了十几次,我写的这个问题很大的。
正着推是从上上往下推得
我却是逆向的思考
(同我一起想想??)
看了大神的代码才懂了。很神奇的哦–
2017-5-2-晚
11 只能是因子转移,不能是本身,如果不能得到本身。!!
2 dp[0][1]是为了给初始值赋值。避免他在改变。其实一个就行,
3 把0开始的一排和一列全初始化为无穷小,是为了避免出现负数的问题,这样第一排即使是负数也会保留。题目数据不够,只将第一列全初始化也能a。。但是这说明样例的问题。。
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;const int maxn=25;const int maxm=1002;int main(){ int a[maxn][maxm]; int dp[maxn][maxm]; int t; int m,n; scanf("%d",&t); while(t--) { scanf("%d%d",&m,&n); memset(a,0,sizeof(a)); memset(dp,0,sizeof(dp)); for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) scanf("%d",&a[i][j]); for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) dp[i][j]=-9999999; dp[1][1]=a[1][1]; //for(int i=2;i<=m;i++) //dp[i][1]=dp[i-1][1]+a[i][1]; //for(int i=2;i<=n;i++) //dp[1][i]=dp[1][i-1]+a[1][i]; //for(int i=1;i<=) for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) { for(int k=1;j+k*j<=n;k++) //k肯定在他前面、 dp[i][j+k*j]=max(dp[i][j]+a[i][j+k*j],dp[i][j+k*j]); dp[i+1][j]=max(dp[i+1][j],dp[i][j]+a[i+1][j]); dp[i][j+1]=max(dp[i][j+1],dp[i][j]+a[i][j+1]); } printf("%d\n",dp[m][n]); } return 0;}
#include<iostream>#include<cstdio>using namespace std;int a[25][1005];int dp[25][1005];int main(){ int tes; cin>>tes; while(tes--) { int n,m; cin>>n>>m; int i,j,k; for(i=1;i<=n;i++) for(j=1;j<=m;j++) scanf("%d",&a[i][j]); for(int i=0;i<=n;i++) for(int j=0;j<=m;j++) dp[i][j]=-9999999; dp[1][1]=a[1][1]; //dp[0][1]=dp[1][0]=0; for(int i=2;i<=n;i++) dp[i][1]=dp[i-1][1]+a[i][1]; for(int i=2;i<=m;i++) {dp[1][i]=dp[1][i-1]+a[1][i]; for(int k=1;k<i;k++)//for(int k=2;k<=j;k++),下面取 j/k; if(i%k==0) { //printf("%d %d %d\n",k,i/k,i); dp[1][i]=max(dp[1][i],dp[1][k]+a[1][i]);} } for(i=2;i<=n;i++) for(j=2;j<=m;j++) { dp[i][j]=max(dp[i-1][j],dp[i][j-1]); //(x+1,y),(x,y+1) for(k=2;k<=m;k++) { if(j%k==0) dp[i][j]=max(dp[i][j],dp[i][j/k]); //(x,y*k) } dp[i][j]+=a[i][j]; } cout<<dp[n][m]<<endl; } return 0;}
1 0
- hdu2571-递推的思考-递推的逻辑
- HDU 6170 递推 DP,思考状态的递进
- 推箱子简单的思想编码逻辑
- 母牛的故事 递推
- 串求逆的递推算法
- 递推方程的求解
- POJ1050 简单的递推~
- 简单的递推练习
- 简单的递推练习
- 简单的递推练习
- bzoj4926 皮皮妖的递推
- 递推的专题竞赛
- HDU2084 DP + 水 /入门+ 递推 + 从后往前思考问题的方式
- 递推
- 递推
- 递推
- 递推
- 递推
- java 多线程加锁-锁住了什么?
- Bootstrap常用的导航栏
- 高斯滤波器
- 学习淘淘商城第五十一课(搜索功能切换到集群)
- STC单片机测8路NTC测温度
- hdu2571-递推的思考-递推的逻辑
- pthread-消费者/生产者模型实现
- 为什么继承
- 单例模式的八种写法
- 01-端口映射作用
- js获取url及url参数的方法
- Spring Anotation
- matlab中使用libsvm
- JAVA isEmpty()方法的使用