BestCoder Round #64 (div.2) HDOJ5586 Sum(脑洞)
来源:互联网 发布:seo职位 编辑:程序博客网 时间:2024/06/11 08:00
Sum
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 671 Accepted Submission(s): 355
Problem Description
There is a number sequence A1,A2....An ,you can select a interval [l,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 integersA1,A2....An .(0≤Ai≤104)
It's guaranteed that∑n≤106 .
First line of each case contains a single integer n.
Next line contains n integers
It's guaranteed that
Output
For each test case,output the answer in a line.
Sample Input
210000 999951 9999 1 9999 1
Sample Output
1999922033
题目链接:点击打开链接
定义一个b数组存储f(a[i]) - a[i]结果, 求出最大连续和即可知道n个数最大的和.
AC代码:
#include "iostream"#include "cstdio"#include "cstring"#include "algorithm"#include "queue"#include "stack"#include "cmath"#include "utility"#include "map"#include "set"#include "vector"#include "list"using namespace std;typedef long long ll;const int MOD = 10007;const int INF = 0x3f3f3f3f;const int MAXN = 1e5 + 5;int n;ll a[MAXN], b[MAXN];ll f(ll x){ return (1890 * x + 143) % MOD;}int main(int argc, char const *argv[]){ while(scanf("%d", &n) != EOF) { ll sum = 0, x = 0, y = 0; for(int i = 0; i < n; ++i) { scanf("%lld", &a[i]); b[i] = f(a[i]) - a[i]; sum += a[i]; } for(int i = 0; i < n; ++i) { if(x + b[i] > 0) x += b[i]; else x = 0; if(x > y) y = x; } printf("%lld\n", sum + y); } return 0;}
1 0
- BestCoder Round #64 (div.2) HDOJ5586 Sum(脑洞)
- BestCoder Round #64 (div.2) Sum
- BestCoder Round #64 (div.2) B Sum&&HDU 5586
- BestCoder Round #64 (div.1) A.Sum
- BestCoder Round #64 (div.2)
- BestCoder Round #64 (div.2)
- BestCoder Round #64 Sum
- BestCoder Round #64 (div.2) 1002 Sum HDU 5586 联机算法
- BestCoder Round #64 (div.2)Sum(最大子序列)好题
- hdu5587 BestCoder Round #64 (div.2)
- hdu5586 BestCoder Round #64 (div.2)
- BestCoder Round #64 (div.2) 1003Array
- HDU 5586 Sum(最大连续子序列和)——BestCoder Round #64(div.1 div.2)
- BestCoder Round #11 (Div. 2)
- BestCoder Round #11 (Div. 2)
- BestCoder Round #50 (div.2)
- BestCoder Round #50 (div.2)
- BestCoder Round 50 (div 2)
- 讲义9:联合查询、子查询
- docker安装完成后碰到如下警告:bridge-nf-call-iptables is disabled
- 网络请求
- virtualbox中ubuntu和windows共享文件夹设置
- svn 命令行创建和删除 分支和tags
- BestCoder Round #64 (div.2) HDOJ5586 Sum(脑洞)
- linux 批量压缩tomcat下批量压缩文件
- 如何找到的路径SSL证书文件?
- leetcode -- Pascal's Triangle II -- 简单
- 简单理解三次握手
- centos 7安装mysql
- c_8: 结构体
- MySQL初级练习笔记
- xib使用