September 24th 模拟赛C T2 序列和 Solution
来源:互联网 发布:知乎数据接口 编辑:程序博客网 时间:2024/05/21 06:49
空降题目处(外网)
点我点我点我
空降题目处(内网)
点我点我点我
Description
N个数排成一个环,请选出不超过K段的连续的数,段与段间不能重叠,且使得选出的数和最大。
Input
第一行包含两个正整数N和k。
接下来1行描述这N个数。
Output
包含一个数,即要去的最大的和。
Solution
其实和环没有(卵)关系,只要求最小的做一遍,求最大的做一遍,得较优就好了.
设
方程:
Code
C++
#include<fstream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;int tot,ans,m,n,k,d[1001000],f[101000][20][2];int main(){ scanf("%d%d",&n,&k); for (int i=1;i<=n;i++) { scanf("%d",&d[i]); tot+=d[i]; } m=-2147483647; memset(f,-0x7f,sizeof(f)); f[1][1][1]=d[1]; f[1][0][0]=0; for (int i=2;i<=n;i++) for (int j=0;j<=k;j++) { f[i][j][0]=max(f[i-1][j][0],f[i-1][j][1]); f[i][j][1]=max(f[i-1][j-1][0],f[i-1][j][1])+d[i]; m=max(m,max(f[i][j][0],f[i][j][1])); } ans=m; m=2147483647; memset(f,0x7f,sizeof(f)); f[1][1][1]=d[1]; f[1][0][0]=0; for (int i=2;i<=n;i++) for (int j=0;j<=k;j++) { f[i][j][0]=min(f[i-1][j][0],f[i-1][j][1]); f[i][j][1]=min(f[i-1][j-1][0],f[i-1][j][1])+d[i]; m=min(m,min(f[i][j][0],f[i][j][1])); } ans=max(ans,tot-m); printf("%d",ans);}
Pascal
uses math;var f,d:array[0..100000,0..10,0..1] of longint; a:array[1..100000] of longint; n,k,i,j,sum:longint;begin //assign(input,'data.in'); reset(input); readln(n,k); for i:=1 to n do begin read(a[i]); inc(sum,a[i]); end; for i:=1 to n do for j:=1 to k do begin f[i,j,1]:=max(f[i-1,j,1],f[i-1,j-1,0])+a[i]; f[i,j,0]:=max(f[i-1,j,1],f[i-1,j,0]); d[i,j,1]:=min(d[i-1,j,1],d[i-1,j-1,0])+a[i]; d[i,j,0]:=min(d[i-1,j,1],d[i-1,j,0]); end; writeln(max(max(f[n,k,1],f[n,k,0]),max(sum-d[n,k,1],sum-d[n,k,0])));end.
0 0
- September 24th 模拟赛C T2 序列和 Solution
- September 10th 模拟赛C T2 火炬手 Solution
- September 17th 模拟赛C T2 独立集 Solution
- September 24th 模拟赛C T1 电费结算 Solution
- September 3rd 模拟赛C T2 比赛 Solution
- September 10th 模拟赛C T1 电影票 Solution
- September 10th 模拟赛C T3 雕塑 Solution
- September 17th 模拟赛C T1 铁轨 Solution
- September 17th 模拟赛C T3 石子游戏 Solution
- June 11th 模拟赛C T2 Cowski Solution
- July 14th 模拟赛C T2 数码问题 Solution
- July 15th 模拟赛C T2 积木游戏 Solution
- July 17th 模拟赛C T2 Number Solution
- December 10th 模拟赛C T2 下棋 Solution
- July 16th 模拟赛C T2 奶牛晒衣服 Solution
- June 11th 模拟赛B T2 翻山越岭 Solution
- September 3rd 模拟赛C T1 祖孙询问 Solution
- September 3rd 模拟赛C T3 数字 Solution
- 自定义弧形进度条
- C#接口和类有什么异同。
- POJ 3295 Tautology(构造)(栈)
- 插入排序(希尔排序、直接插入、折半插入排序)
- RE:从零开始的数据结构生活
- September 24th 模拟赛C T2 序列和 Solution
- G - N!Again
- [codevs1021] 玛丽卡
- Win10 64位系统下Python 及 Numpy , matplotlib,scipy工具包的安装
- UVA 12717 Fiasco
- JavaEE之第五课时
- Android 工具:adb
- mac环境添加路由表
- 版本控制git