WOJ 1026
来源:互联网 发布:云计算的概念是什么 编辑:程序博客网 时间:2024/06/17 05:34
万恶的动态规划题. 其实这题已经属于DP里面比较基础的了. 由下面的公式来写程序:
然后注意的一点就是, 写程序的时候棋盘最两边的那俩只能取上排的两个哦…不然数组要越界…
代码如下:
//// Created by Frank Yan on 2017/12/19.//#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <stdlib.h>#include <string>#include <vector>#include <queue>using namespace std;int problem26(){ int t; cin>>t; for(int k=0;k<t;k++){ int n; cin>>n; int board[n][n]; for(int i=0;i<n;i++) for(int j=0;j<n;j++) cin>>board[i][j]; int DP[n][n]; for(int j=0;j<n;j++) DP[0][j] = board[0][j]; for(int i=1;i<n;i++) for(int j=0;j<n;j++){ if(j!=0&&j!=n-1) DP[i][j] = max(max(DP[i-1][j],DP[i-1][j-1]),DP[i-1][j+1])+board[i][j]; else if(j==0) DP[i][j] =max(DP[i-1][j],DP[i-1][j+1])+board[i][j]; else DP[i][j] = max(DP[i-1][j],DP[i-1][j-1]); } //cout<<DP[1][1]<<endl; int result = -1; for(int i=0;i<n;i++) if(DP[n-1][i]>result) result = DP[n-1][i]; cout<<"Case "<<k+1<<":"<<endl; cout<<result<<endl; if(k!=t-1) cout<<endl; }}
阅读全文
0 0
- WOJ 1026
- WOJ
- woj
- WOJ 1020
- WOJ 1014
- WOJ 1055
- WOJ-1402
- WOJ--1314
- WOJ-1315
- WOJ-1316
- WOJ-1100
- woj-1301
- WOJ-1167
- WOJ 1619
- woj 1538
- WOJ1416-WOJ
- WOJ-1002
- WOJ-1003
- LCT模板
- ASP 文件上传
- c语言作业(四)
- Redis的事务
- reactor和proactor模式
- WOJ 1026
- 洛谷 P1579 哥德巴赫猜想(升级版)
- java中Date类测试总结
- 购物车
- 飞思卡尔 mc9s12xs128芯片的ucos 移植
- Caffe fine-tuning 微调网络
- 从LeNet-5到DenseNet
- python提取图像的名字*.jpg到txt文本
- 编写多线程程序