wiki 1257 打砖块
来源:互联网 发布:rx1r2 知乎 编辑:程序博客网 时间:2024/05/17 22:39
题解,很详细
#include<cstdio>#include<cstring>#include<iostream>#include<iomanip>#include<queue>#include<cmath>#include<stack>#include<map>#include<vector>#include<set>#include<algorithm>using namespace std;int n,m;int mymap[51][51];int tmap[51][51];void init(){ cin >> n >> m; for(int i = 0; i < n; i++){ for(int j = 0; j < n-i; j++){ cin >> mymap[i][j]; } }}void zhuanhua (){ for(int i = 0; i < n; i++){ for(int j = 0; j < n-i; j++){ tmap[j+i][i] = mymap[i][j]; } }}int main(int argc, const char * argv[]){ init(); zhuanhua(); int result = 0; int dp[51][510][51]; memset(dp, -1, sizeof(dp)); for(int i = 0; i < n; i++) dp[i][1][1] = tmap[i][0]; dp[0][0][0] = 0; int mysum[51][51]; memset(mysum, 0, sizeof(mysum)); for(int i = 0; i < n; i++){ for(int j = 0; j <= i; j++){ if(j==0) mysum[i][j] = tmap[i][j]; else mysum[i][j] = mysum[i][j-1]+tmap[i][j]; } } for(int i = 1; i < n; i++){ for(int j = 0; j <= m; j++){ for(int k = 0; k <= i+1; k++){ if(k <= j){ for(int p = (k-1 < 0 ? 0 : k-1); p <= i; p++){ if(dp[i-1][j-k][p]!=-1){ int temp = dp[i-1][j-k][p] + (k>0 ? mysum[i][k-1] : 0); if(dp[i][j][k] < temp) dp[i][j][k] = temp; if(j==m) result = (result < dp[i][j][k] ? dp[i][j][k] : result); } } } } } } cout << result << endl;}
0 0
- wiki 1257 打砖块
- 打砖块
- 打砖块
- 打砖块
- 打砖块游戏源码
- HNOI2004 打砖块
- Qt打砖块游戏
- android 打砖块游戏
- Linux C 打砖块
- 【HNOI2004】打砖块
- unity3D__球打砖块
- 【codevs1257】打砖块 DP
- 【codevs1257】 打砖块
- 洛谷 P1174 打砖块
- 洛谷 P1174 打砖块
- 打砖块Demo
- 洛谷 P1174 打砖块
- 打砖块小游戏1.0
- 考虑一个线性地址转换物理地址的过程
- hdu2192 MagicBuilding
- HDU1150/POJ1325_Machine Schedule(二分图/最小点覆盖=最大匹配)
- windows MFC——汉罗塔可视化移动程序
- 创建前台Service
- wiki 1257 打砖块
- 仿函数(functors)
- sql截取特殊字符分隔开的字串
- The Suspects poj
- OCP 1Z0 053 210
- asp.net 分页
- 解决MyEclipse内存不足
- 杭电 1518 Square (深搜)(回溯)
- TypeCast Any AnyObject