博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 2845(最大不连续子序列)
阅读量:6430 次
发布时间:2019-06-23

本文共 728 字,大约阅读时间需要 2 分钟。

题目链接:

思路:对于一行来说,相邻的数不可同时取,容易得到状态转移方程:sum[i] = max (sum[i-2]+sum[i], sum[i-1]),其中sum[i]表示一行前i个数时的最大和;然后把sum[m]保存到另一个数组中,对于每一行都这么做,然后最后在对数组再次进行一边这样的操作就行了;

View Code
1 #include
2 const int N=200020; 3 using namespace std; 4 5 int a[N],b[N]; 6 7 int main(){ 8 int n,m; 9 while(~scanf("%d%d",&n,&m)){10 for(int i=1;i<=n;i++){11 for(int j=1;j<=m;j++){12 scanf("%d",&a[j]);13 }14 for(int j=2;j<=m;j++){15 a[j]=max(a[j-2]+a[j],a[j-1]);16 }17 b[i]=a[m];18 }19 for(int i=2;i<=n;i++){20 b[i]=max(b[i-2]+b[i],b[i-1]);21 }22 printf("%d\n",b[n]);23 }24 return 0;25 }

 

转载地址:http://sotga.baihongyu.com/

你可能感兴趣的文章
学生学籍管理系统
查看>>
Mysql中Join用法及优化
查看>>
雨课堂知识点总结(十四)
查看>>
[LOJ3053]希望
查看>>
hdu1272 小希的迷宫 (并查集)
查看>>
POJ 2785 4 Values whose Sum is 0 (二分)题解
查看>>
HDU 4417 Super Mario(主席树 区间不超过k的个数)题解
查看>>
20111226
查看>>
爬虫8:Scrapy-取内容
查看>>
【GTK】窗口停靠
查看>>
toPrimitive方法使用
查看>>
Ansible 安装
查看>>
【高数竞赛准备】多元函数微分学
查看>>
python urllib2 模拟网站登陆
查看>>
从内核文件系统看文件读写过程
查看>>
访问受保护的属性
查看>>
求js数组的最大值和最小值
查看>>
RxJava的使用
查看>>
[Node.js]DNS模块
查看>>
vi 或 vim 常用命令(简单够用了)
查看>>