最大连续子段和dp
2017-03-18 18:26
330 查看
There is a number sequence A1,A2….An,you can select a interval l,rl,r or not,all the numbers Ai(l≤i≤r) will become f(Ai).f(x)=(1890x+143)mod10007.After that,the sum of n numbers should be as much as possible.What is the maximum sum?
Input
There are multiple test cases.
First line of each case contains a single integer n.(1≤n≤105)
Next line contains n integers A1,A2….An.(0≤Ai≤104)
It’s guaranteed that ∑n≤106.
Output
For each test case,output the answer in a line.
Sample Input
2
10000 9999
5
1 9999 1 9999 1
Sample Output
19999
22033
最大连续子段和 以前做过同类型的题。。
Input
There are multiple test cases.
First line of each case contains a single integer n.(1≤n≤105)
Next line contains n integers A1,A2….An.(0≤Ai≤104)
It’s guaranteed that ∑n≤106.
Output
For each test case,output the answer in a line.
Sample Input
2
10000 9999
5
1 9999 1 9999 1
Sample Output
19999
22033
#include<cstdio> int a[100005]; int main(){ int n; while (~scanf("%d",&n)){ int sum = 0; for (int i= 0; i < n; ++i){ scanf("%d",&a[i]); sum += a[i]; } int ans = 0; int tmp = 0; int mx = 0; for (int i = 0; i < n; ++i){ ans += (1890*a[i]+143)%10007; tmp += a[i]; if (ans-tmp>mx) mx = ans - tmp; if (ans - tmp < 0) { ans = 0; tmp = 0; } } printf("%d\n",sum+mx); } return 0; }
最大连续子段和 以前做过同类型的题。。
相关文章推荐
- 蓝桥杯 最大子阵 dp (类最大连续子段和)
- DP训练 hdu 1003 Max Sum 最大连续子段和
- POJ 1050 To the Max && POJ 2479 Maximum sum(DP最大连续子段和)
- [DP]FJSDFZOJ 1386 最大连续子段和问题
- 最大连续子段和+记录路径 【DP 初步】
- POJ 1976 A Mini Locomotive (DP 最大连续m子段和)
- POJ 1976 A Mini Locomotive (DP 最大连续m子段和)
- HDU 1003 MAX SUM 最大连续子段和DP
- [DP]LIS+LCS+最大连续子段和
- HDU1069 Monkey and Banana DP非连续单调递增序列的最大和的变种
- nyoj44 nyoj17 HDU1087 DP动规 连续字符串的和最大值 单调递增最长子序列 单调递增子序列最小个数 非连续最大递增子序列
- HDU 1003 最大连续子段和
- hdu(1003)——Max Sum(最大连续子段和)
- Max Sum 最大连续和的子序列 HDU 1003 (一维序列DP)
- HDU_5586_Sum(最大连续子段和)
- poj 2479 最大连续子段和 dp算法
- hdoj Max Sum Plus Plus 1024 (DP) m个连续数组最大和
- BZOJ5089: 最大连续子段和
- [itint5]环形最大连续子段和
- HDU 2845 Beans(DP,最大不连续和)