HDU1231 最大连续子序列
2015-09-12 21:05
351 查看
题目链接
代码如下:
代码如下:
#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> #define mem(a, b) memset(a, b, sizeof(a)) using namespace std; int dp[10005], num[10005]; int main() { int n, ans, tmp; while(~scanf("%d", &n) && n) { bool flag = 0; mem(dp, 0); for(int i = 0; i < n; i++) { scanf("%d", &num[i]); if(num[i] >= 0) flag = 1; } if(!flag) { printf("0 %d %d\n", num[0], num[n - 1]); continue; } dp[0] = num[0]; ans = num[0]; tmp = 0; for(int i = 1; i < n; i++) { dp[i] = max(dp[i - 1] + num[i], num[i]); if(ans < dp[i]) ans = dp[i], tmp = i; } int ans1 = num[tmp], ans2 = num[tmp]; for(int i = tmp - 1;i >= 0;i--) { if(dp[i] == dp[i + 1] - num[i + 1]) ans1 = num[i]; else break; } printf("%d %d %d\n", ans, ans1, ans2); } return 0; }
相关文章推荐
- 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。
- 通过gdb快速定位“段错误”的位置
- zxing实现二维码解析和生成
- QQ空间留言的JS
- 【转】关于微信开发者平台移动应用获取签名解决问题
- 测试你是否和LTC水平一样高 1407 (简单数学题)
- 超轻量级的安卓SlidingMenu库
- linux操作系统中的文件目录结构详细介绍
- Docker 根本不适合用于本地开发环境
- MATLAB中find函数用法
- The Suspects 并查集
- posix线程栈
- 判断浏览器是否安装pdf插件
- Android JNI的动态注册
- 终于拿到了软件开发的第一桶金
- ViewPager+可缩放ImageView的使用
- TCP粘包,UDP不存在粘包问题
- javaScript
- Hadoop/spark安装实战(系列篇2)安装虚拟机、PieTTY、winscp、JDK、配置DNS、SSH免密码登录
- 输入n ,打印出n*n的螺旋矩阵(算法)