Analysis

给定一个f*v的矩阵

要求从第一行走到第f行,每行取走一个数,

且该行所取的数必须必上一行所取的数的列数大 , 求所能取走的最大值

注意每一行所取走的数字的列数必须大于等该行的行号

因为必须给前面的花留下足够的花瓶

同理每一行所能取的最大的花瓶号必须小于等于v-(f-该行行数)

由此我们便可以很容易的得出状态转移方程

dp[i][j]=max(dp[i-1][k])+d[i][j](k<j)dp[i][j]=max(dp[i−1][k])+d[i][j](k<j)

其中dp[i][j]dp[i][j]表示从第一行走到第i行并取走该行第j个数所能取得的最大值

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stack>
#define int long long
#define maxn 100+10
#define INF 9223372036854775807
using namespace std;
inline int read()
{
int x=;
bool f=;
char c=getchar();
for(; !isdigit(c); c=getchar()) if(c=='-') f=;
for(; isdigit(c); c=getchar()) x=(x<<)+(x<<)+c-'';
if(f) return x;
return -x;
}
inline void write(int x)
{
if(x<){putchar('-');x=-x;}
if(x>)write(x/);
putchar(x%+'');
}
int f,v;
int map[maxn][maxn];
int dp[maxn][maxn];
int path[maxn][maxn];
stack<int> s;
inline void print(int num,int x)
{
if(num==) return;
s.push(x);
print(num-,path[num][x]);
}
signed main()
{
freopen("flower.in","r",stdin);
freopen("flower.out","w",stdout);
memset(dp,,sizeof(dp));
f=read();v=read();
for(int i=;i<=f;i++)
for(int j=;j<=v;j++)
map[i][j]=read();
for(int i=;i<=v;i++) dp[][i]=map[][i];
for(int i=;i<=f;i++)
for(int j=i;j<=v-(f-i);j++)
for(int k=;k<j;k++)
{
if(dp[i-][k]+map[i][j]>dp[i][j])
{
dp[i][j]=dp[i-][k]+map[i][j];
path[i][j]=k;
}
}
int ans=-INF,fnum=;
for(int i=;i<=v;i++)
if(dp[f][i]>ans)
{
ans=dp[f][i];
fnum=i;
}
write(ans);
printf("\n");
print(f,fnum);
while(!s.empty())
{
write(s.top());
printf(" ");
s.pop();
}
return ;
}

请各位大佬斧正(反正我不认识斧正是什么意思)

最新文章

  1. Mysql性能优化二
  2. 2015-2016-2 《Java程序设计》项目小组博客
  3. K-means算法及文本聚类实践
  4. iOS开发之loadView和viewDidLoad总结
  5. Unity3D 纹理偏移(TextureOffset)浅析
  6. RocketMQ学习记录
  7. FileUpload控件「批次上传 / 多档案同时上传」的范例--以「流水号」产生「变量名称」
  8. VC6.0的工程设置解读Project--Settings
  9. php和java静态变量用途的思考
  10. Sersync同步过滤.svn文件夹
  11. JS原生javascript可以直接写id名来选取元素
  12. 【Atom】在一个中/大型项目中,那些好用而强大的atom功能
  13. Web前端学习——HTML
  14. 【精选】Nginx模块Lua-Nginx-Module学习笔记(二)Lua指令详解(Directives)
  15. git 使用过程中遇到的问题does not appear to be a git repository Could not read from remote respository
  16. Grid布局指南
  17. include 指令和 include 动作引入 jsp 页面时中文乱码
  18. 深入理解,函数声明、函数表达式、匿名函数、立即执行函数、window.onload的区别.
  19. T4学习- 2、创建设计时模板
  20. 《DSP using MATLAB》Problem 4.17

热门文章

  1. [洛谷P2056][ZJOI2007]捉迷藏(2019-7-20考试)
  2. Spring Aop中execution的语法
  3. lombok使用教程
  4. 【洛谷 P2226】 [HNOI2001]遥控赛车比赛(最短路)
  5. vue 生命周期的详解
  6. 如何使用API的方式消费SAP Commerce Cloud的订单服务
  7. spring的Autowired、Resource、Inject的使用
  8. c# 写入文本文件
  9. angularcli 第四篇(执行事件)
  10. P3620 [APIO/CTSC 2007]数据备份[优先队列+贪心]