DP之数塔
来源:互联网 发布:java 取变量名方法 编辑:程序博客网 时间:2024/04/30 03:20
#include <stdio.h>#include <algorithm>#include <string.h>using namespace std;//G++提交时WA,C++可以AC 第一次做dp的题目,主要是状态转移方程int main(){ int T,i,j; int n; int a[101][101],dp[101][101]; scanf("%d",&T); while(T--) { scanf("%d",&n); memset(a,0,sizeof(a)); memset(dp,0,sizeof(dp)); for(i = 1;i <= n;i++) { for(j=1;j<=i;j++) scanf("%d",&a[i][j]); } for(i=n;i>=1;i--) { for(j=1;j<=i;j++) dp[i][j] = max(dp[i+1][j],dp[i+1][j+1]) + a[i][j];} printf("%d\n",dp[1][1]); } return 0;}
HDU 1176
#include <stdio.h>#include <algorithm>#include <string.h>using namespace std;int a[100001][12],dp[100001][12]; //大数组要放外面 int main(){ int T,i,j; int n,m,cnt; while(~scanf("%d",&T),T) { memset(a,0,sizeof(a)); memset(dp,0,sizeof(dp)); for(i=0,cnt=0;i<T;i++) { scanf("%d%d",&m,&n); a[n][m+1]++; cnt = max(n,cnt); } for(i=1;i<=11;i++) { dp[cnt][i] = a[cnt][i]; } for(i=cnt-1;i>=0;i--) { for(j=1;j<=11;j++) //j只能从1开始,因为后面有j-1 ,所以前面的输入的时候每个位置都要+1 dp[i][j] = max(dp[i+1][j-1],max(dp[i+1][j],dp[i+1][j+1])) + a[i][j];} printf("%d\n",dp[0][6]); } return 0;}
0 0
- DP之数塔
- dp之数塔问题
- dp之数塔问题
- 训练之DP-数塔
- dp算法之数塔问题
- DP之数塔模型poj1157
- DP入门之数塔(2084)
- ACM-DP之数塔——HDU2084
- HDU1176 数塔DP
- dp数塔
- 数塔 DP
- 数塔(Dp)
- hdu2084 dp数塔
- HDU2084:数塔(DP)
- 【2084 数塔 DP】
- dp数塔问题
- 数塔DP
- POJ3176 DP 数塔
- update更新
- MP4文件quick start探究
- 细数AutoLayout以来UIView和UIViewController新增的相关API
- ASE Can't allocate space for object 'syslogs' in database 'WEN' because 'logsegment' segment is full
- Image Stride
- DP之数塔
- Swift 下载文件 支持断点下载
- Android系统联系人全特效实现(下),字母表快速滚动
- ReviewBoard安装和配置札记
- 最简单的create语句
- 梯度下降法通俗解释
- openwrt iw 扫描AP iw wlan0 scan
- 设计模式——建造者模式
- 第六章 作业