http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=652&pid=1003

题目大意:

给你一个序列,你随便找一个区间,让这个区间的所有数都变成f(x)=(1890*x+143)%10007

然后在求和   问最大的和是多少

分析:

可以把每一个x的f[x]都求出来让他们的差保存到b[N]中    求b[N]的最大子序列和

然后让刚开始序列的总和加上这个最大子序列和  就是最大的和

补充:

求最大子序列和

int maxsublinear(const int a[], int n)
{
int i;
int curSum = ; /* 当前序列和 */
int maxSum = ; /* 最大序列和 */
int begin = end = ; /* 开始循环求子序列和 */
for (i = ; i < n; i++)
{
curSum = curSum + a[i]; /* 与最大子序列和比较,更新最大子序列和 */
if (curSum > maxSum)
{
maxSum = curSum;
end = i;
} /* 动态规划部分,舍弃当前和为负的子序列 */
if (curSum < )
{
curSum = ;
begin = i + >= n ? i : i + ;
}
}
return maxSum;
}

 

上代码:

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include<algorithm>
#include<iostream> using namespace std;
#define N 110010
int n,a[N],i,f[N],b[N];
int main()
{ while(scanf("%d",&n)!=EOF)
{
memset(a,,sizeof(a));
memset(f,,sizeof(f));
memset(b,,sizeof(b));
int s=;
for(i=;i<n;i++)
{
scanf("%d",&a[i]);
s+=a[i];
f[i]=(*a[i]+)%;
b[i]=f[i]-a[i];
}
int Max=,sum=;
for(i=;i<n;i++)
{
sum+=b[i];
if(Max<sum)
{
                Max=sum;
}
if(sum<)
sum=;
}
printf("%d\n",s+Max);
}
return ;
}

最新文章

  1. 按钮点击事件,打开新的Activity
  2. haproxy simple cfg
  3. Codeforces Beta Round #77 (Div. 1 Only) C. Volleyball (最短路)
  4. memcache/redis 缓存学习笔记
  5. Jenkins xcodebuild There are no schemes in workspace
  6. AngularJs解决方案笔记(1)
  7. 用Windows Server 2003搭建企业内部邮件服务器
  8. 问题解决:form表单的button按钮问题
  9. SDUT 1305 查找基因序列问题 dp
  10. MySQL保留关键字
  11. 玩转Web之JavaScript(四)-----javaScript语法总结(四) JS中的函数
  12. UIStepper 缩放:UI的使用
  13. Builder模式详解及其在Android开发中的应用
  14. PHP 通过fsockopen函数获取远程网页源码
  15. Dubbo工作原理,集群容错,负载均衡
  16. μC/OS-II 的系统时钟
  17. blfs(systemv版本与systemd版本均适用)学习笔记-从主机挂载lfs的方法
  18. Linux 文件系统IO性能优化【转】
  19. C++使用: C++中map的基本操作和用法
  20. linux命令-crontab

热门文章

  1. vue项目中安装cnpm和node_modules
  2. Asp.Net控件的客户端命名
  3. 迅为iMX6UL开发板低功耗高能效开发平台
  4. Nexus环境搭建
  5. (转)淘淘商城系列——KindEditor富文本编辑器的使用
  6. Android(java)学习笔记199:JNI之JNI概念
  7. SpringCloud 微服务框架
  8. JS的type类型为 text/template
  9. 关于nested exception is org.apache.ibatis.binding.BindingException:Parameter &#39;***&#39; not found报错解决
  10. 第3节 mapreduce高级:4、倒排索引的建立