BestCoder Round #64 (div.1) A.Sum
2015-11-28 20:26
288 查看
Sum
Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others)
问题描述
给n个数{A}_{1},{A}_{2}....{A}_{n}A1,A2....An,你可以选择一个区间(也可以不选),区间里每个数x变成f(x),其中f(x)=(1890x+143) mod 10007f(x)=(1890x+143)mod10007。问最后n个数之和最大可能为多少。
输入描述
输入有多组数据。 每组数据第一行包含一个整数n.(1\leq n\leq {10}^{5})(1≤n≤105) 第二行n个整数{A}_{1},{A}_{2}....{A}_{n}A1,A2....An.(0\leq {A}_{i}\leq {10}^{4})(0≤Ai≤104) 数据保证 \sum n\leq {10}^{6}∑n≤106.
输出描述
对于每组数据输出一行答案.
输入样例
2 10000 9999 5 1 9999 1 9999 1
输出样例
19999 22033
暴力区间时间复杂度O(n^2),n<=10^5肯定会超时
方法一:
首先要先求出[i,j]区间x变为f(x)后的和sum1,以前的和sum,sum1-sum最大
可以先有一个数组把变化大小存着,再有dp求这个区间。
a[]数组表示就是已知数组,b[i]=f( a[i] )(0<i<=n)
如果最大的sum1-sum<0
答案的为a数组的前n项和
否者
a[1..l-1]和,b[l..r]和,a[l+1....n]和
三个和相加就是答案
方法二:
联机算法
相关文章推荐
- 单链队列——队列的链式存储结构
- hdu1077模拟
- 抄书问题
- vim中的杀手级插件: vundle
- Docker镜像
- Oracle数据库共享内存分配不足问题的解决
- iOS_UIImageView的contentMode属性--照片的显示模式
- 第三章:基本HTML结构
- 接口测试工具Postman(chrome插件)
- 【LeetCode从零单刷】Minimum Depth of Binary Tree
- Hibernate的配置文件
- Cassandra监控 - OpsCenter手册
- 学会调节自己
- 信息安全系统设计基础第十一周总结
- 字母图形
- 话题14--井然有序 运算顺序的详细挖掘
- 478B. Random Teams
- 「构建之法」与机械工程
- oc对象初始化
- 一起talk C栗子吧(第六十六回:C语言实例--DIY字符串比较函数)