codeforces Ilya Muromets 2014 NEERC Southern Subregional Contest F dp
来源:互联网 发布:初学编程怎么学 编辑:程序博客网 时间:2024/04/26 08:18
传送门:NEERC Southern Subregional F
给定一段长度为n的数组,选出两段长度为k的子序列,使得总和最大
首先2*k>=n时,两段必能包含整个数组,因此输出总和即可。
否则,从第k个数开始向后扫,每一次求出到当前位置为止最大的k段和,然后与后面紧接的k个数求和,与当前得到的最大值比较。O(n)可解
/****************************************************** * File Name: f.cpp * Author: kojimai * Create Time: 2014年10月25日 星期六 15时48分29秒******************************************************/#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<iostream>using namespace std;#define FFF 200005int a[FFF];long long ss[FFF];int main(){int n,k;cin>>n>>k;ss[0] = 0;for(int i = 1;i <= n;i++){cin>>a[i];ss[i] = ss[i-1] + a[i];}long long ans = ss[k*2];if(k*2>=n)cout<<ss[n]<<endl;else{long long tt = ss[k];for(int i = k+1;i <= n-k;i++){tt = max(tt,ss[i]-ss[i-k]);ans = max(ans,tt + ss[i+k]-ss[i]);}cout<<ans<<endl;}return 0;}
nn = raw_input()nnn = map(int,nn.split())n = nnn[0]k = nnn[1]s = raw_input()a = map(int,s.split())ss = [0]Sum = 0for x in a:Sum = Sum + xss.append(Sum)if k * 2 >= n:print Sumelse:tt = ss[k]ans = ss[k * 2]for i in range(k + 1,n - k + 1):tt = max(tt,ss[i] - ss[i-k])ans = max(ans,tt + ss[i+k] - ss[i])print ans
0 0
- codeforces Ilya Muromets 2014 NEERC Southern Subregional Contest F dp
- 2014-2015 ACM-ICPC, NEERC, Southern Subregional Contest F. Ilya Muromets
- Codeforces 730 J. Bottles DP 0-1背包- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest
- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest J dp
- codeforces Variable Shadowing 2014 NEERC Southern Subregional M 贪心策略
- CF - 100513F Ilya Muromets(dp)
- 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest F - Infinite Go
- 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest F. Gourmet and Banquet(贪心+二分)
- 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest F. Lost in Transliteration
- Codeforces 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest A题 (String模拟)
- Codeforces 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest I题(模拟)
- Codeforces 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest J题(BFS)
- Codeforces 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest B题 (排序贪心)
- CodeForces 589J ——2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest
- Codeforces 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror)
- codeforces 730G Car Repair Shop 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest
- codeforces H. Delete Them(2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, )
- codeforces/2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest, qualification stage (B)
- (五)Decorator模式学习
- leetcode - Longest Substring Without Repeating Characters
- MFC专用名词缩写
- 【leetcode 数组】Median of Two Sorted Arrays
- for(;;)与while(1)的区别
- codeforces Ilya Muromets 2014 NEERC Southern Subregional Contest F dp
- PHP数组
- linux安装jdk
- ubuntu 13.04 安装 JDK
- CodeForces-58A-Chat room
- vmware 下bridge NAT host-only的区别
- leetcode 258 Add Digits(java)
- block系列重新整理1
- linux gcc编译C程序