Sum-(最大子序列和)
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 ;
}
Sum-(最大子序列和)的更多相关文章
- PAT Maximum Subsequence Sum[最大子序列和,简单dp]
1007 Maximum Subsequence Sum (25)(25 分) Given a sequence of K integers { N~1~, N~2~, ..., N~K~ }. A ...
- Maximum Subsequence Sum 最大子序列和的进击之路
本文解决最大子序列和问题,有两个题目组成,第二个题目比第一个要求多一些(其实就是要求输出子序列首尾元素). 01-复杂度1 最大子列和问题 (20分) 给定KK个整数组成的序列{ N1, N2 ...
- [CareerCup] 17.8 Contiguous Sequence with Largest Sum 连续子序列之和最大
17.8 You are given an array of integers (both positive and negative). Find the contiguous sequence w ...
- HDU——1003Max Sum(子序列最大和)
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- codeforces Round#381 div2
第一题: 按余数分类,1,2,3分别由哪些基数组成 1->[1][2+3][3+3+3] 2->[1+1][2][3+3] 3->[1+1+1][1+2][3] #include&l ...
- 洛谷.2042.[NOI2005]维护数列(Splay)
题目链接 2017.12.24 第一次写: 时间: 2316ms (1268ms) 空间: 19.42MB (19.5MB)(O2) 注:洛谷测的时间浮动比较大 /* 插入一段数:将这些数先单独建一棵 ...
- LeetCode practice
子集和问题:给定一组数和一个值,从这组数中选出若干个数使其和为给定的值.这是个NPC问题. 1.https://leetcode.com/problems/counting-bits/#/soluti ...
- 回溯算法 DFS深度优先搜索 (递归与非递归实现)
回溯法是一种选优搜索法(试探法),被称为通用的解题方法,这种方法适用于解一些组合数相当大的问题.通过剪枝(约束+限界)可以大幅减少解决问题的计算量(搜索量). 基本思想 将n元问题P的状态空间E表示成 ...
- Comet OJ - Contest #3 题解
传送门 太菜了连\(D\)都做不出来没有小裙子\(QAQ\) \(A\) 暴力把所有的数对都算出来,然后\(sort\)一下就行了 const int N=505; int a[N],st[N*N], ...
- Binary Indexed Tree
我借鉴了这个视频中的讲解的填坑法,我认为非常易于理解.有FQ能力和基本英语听力能力请直接去看视频,并不需要继续阅读. naive 算法 考虑一个这样的场景: 给定一个int数组, 我们想知道它的连续子 ...
随机推荐
- R Programming week 3-Loop functions
Looping on the Command Line Writing for, while loops is useful when programming but not particularly ...
- Asp.Net 设计模式 之 “工厂方法”即利用 接口 实现的抽象工厂
主要改动部分: /// <summary> /// 6.创建工厂方法模式(抽象工厂:接口) /// </summary> interface IFactory ...
- Farseer.net轻量级ORM开源框架 V1.x 教程目录
本篇教程将以Ver 1.x版本进行详细使用讲解 大家有任何疑问可以加入我们的官方QQ群进行讨论.QQ群:116228666 (Farseer.net开源框架交流) 请注明:Farseer.Net 整个 ...
- Record these plug-ins of vscode
实在无聊透顶.写个随笔记录一下vscode的插件好了. 第一次使用(之前一直在用sublime...),以后再更新吧.record my color too! Visual Studio Code B ...
- C/C++ 函数模板、全局变量、register、存储周期
1.函数声明时可以简写,如: int max(int,int): 2.函数模板: 格式: template <typename haha>或template <class haha& ...
- HDU_1237_简单计算器
运算符为+,-,*,/:操作数为整数:且没有括号 设定符号优先级,先在栈底压运算符0 #include<iostream> #include<cstdio> #include& ...
- Which dispatch method would be used in Swift?-Existential Container
In this example: protocol MyProtocol { func testFuncA() } extension MyProtocol { func testFuncA() { ...
- inux 软件编译、安装、删除
640?wx_fmt=otherimage.png 本文学习内容 手动安装软件 手动安装下载源码的软件 源码编译3步骤 deb包-包依赖管理 dekg -l 查看所以安装deb的包 apt-get仓库 ...
- css 样式通用样式
属性: vertical-align (这个属性主要作用是用于将相邻的文本与元素对齐,用于对齐行内元素,也就是说,display 的属性为 inline. inline-block 行内块,顾名 ...
- Python3.0 调用HTMLTestRunner生成的报告中不能显示用例中print函数的输出
官方原生的HTMLTestRunner.py支持python2.0版本,python3.0版本的使用需要做一些修改: Python3调用HTMLTestRunner执行用例生成测试报告中,不能正常显示 ...