HDU-1231解题报告
来源:互联网 发布:淘宝多少转化率正常 编辑:程序博客网 时间:2024/06/06 03:46
这里用的是动态规划,就是那个记录第一个和最后一个值搞了半天。。。
这里是题目的 链接
AC代码如下:
#include<iostream>using namespace std;int main() { int K; while (cin>>K) { if (0 == K) { break; } int values[K]; int max_values[K]; int max = -1; bool is_all_negtive = true; for (int i=0; i<K; i++) { scanf("%d", &values[i]); max_values[i] = 0; if (values[i] >= 0) { is_all_negtive = false; } } if (is_all_negtive) { cout<<"0 "<<values[0]<<" "<<values[K-1]<<endl; continue; } int first, end; for (int i=0; i<K; i++) { if (i-1 >= 0 && max_values[i-1] + values[i] >= values[i]) { max_values[i] = max_values[i-1] + values[i]; } else { max_values[i] = values[i]; } if (max_values[i] > max) { max = max_values[i]; end = i; } } int max_cp = max; for (int i=end; i>=0; i--) { if (max_cp - values[i] == 0) { while (i > 0) { if (values[i-1] != 0) { break; } else { i--; } } first = i; break; } max_cp -= values[i]; } cout<<max<<" "<<values[first]<<" "<<values[end]<<endl; } return 0;}
max[i] = max{max[i-1] + v[i] , v[i]} ,即第i个位置的最大连续子串的值为第I-1个位置上的最大值与i的值之和 与 第i个位置值中 大的那个
因为为了考虑
7
0 0 0 1 2 3 4
输出:10 0 4
所以输出的first和end这里要特别注意点。
0 0
- hdu 1231 解题报告
- HDU-1231解题报告
- HDU 1231 畅通工程 解题报告
- HDU解题报告——1231
- HDU 3342 解题报告
- HDU 3336 解题报告
- HDU 3335 解题报告
- hdu 2516解题报告
- hdu 1004解题报告
- hdu 2139解题报告
- hdu 1019解题报告
- hdu 1064 解题报告
- HDU 1113 解题报告
- hdu 1068 解题报告
- HDU:2050解题报告
- hdu 4001解题报告
- hdu 1005解题报告
- HDU解题报告--1003
- bzoj2734: [HNOI2012]集合选数 压状dp
- 编程题(4)------Excel地址转换(C)
- Log4Net
- CUDA系列学习(一)An Introduction to GPU and CUDA
- 设计模式——抽象工厂(Abstract Factory Pattern)
- HDU-1231解题报告
- 编译Android出错:Unable to execute dex: Java heap space
- [端口扫描]S扫描器跨网段扫描
- A+B Problem
- 2015年1月5日
- Hibernate——ORMapping
- poj2240 Arbitrage(bellman)
- 设计模式速记
- 2015书单