CodeForces 332B Maximum Absurdity
来源:互联网 发布:淘宝网怎么用微信支付 编辑:程序博客网 时间:2024/04/26 05:35
http://codeforces.com/problemset/problem/332/B
给出n个数,再个一个长度,问在n个数的数列中,找到2个相应长度的数串求和最大,且这两个数串不能重叠。只要对数列进行类似于求前缀和的操作,既可以加快速度,一道不算太难的预处理的题目。
#include<bits/stdc++.h>using namespace std;int a[222222];long long int b[222222];long long int c[222222];long long int w[222222];int main(){int n,m;while(scanf("%d%d",&n,&m)!=EOF){ int i,j; int js=1; memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); for(i=1;i<=n;i++) { scanf("%d",&a[i]); if(i>m) { b[++js]=b[js-1]-a[i-m]+a[i];}else b[1]+=a[i]; } long long int ans=-1; int w1,w2; w[js+1]=js; for(i=js;i>=1;i--) { if(b[i]>=c[i]) { c[i]=b[i]; c[i-1]=b[i]; w[i]=i; } else{ c[i-1]=c[i]; w[i]=w[i+1]; } } for(i=1;i<=js;i++) { if(b[i]+c[i+m]>ans) { ans=b[i]+c[i+m]; w1=i; w2=w[i+m]; } } cout<<w1<<" "<<w2<<endl;}return 0;}
阅读全文
0 0
- CodeForces 332B Maximum Absurdity
- CodeForces 332B Maximum Absurdity
- codeforces 332B B. Maximum Absurdity(rmq)
- codeforces 332b Maximum Absurdity dp
- Codeforces 332B Maximum Absurdity(暴力)
- [CodeForces 332B]Maximum Absurdity[DP]
- CodeForces 332B Maximum Absurdity(线段树单点更新)
- codeforce 332B Maximum Absurdity
- CF 332 B.Maximum Absurdity【DP】
- B. Maximum Absurdity
- CodeForces 332 B. Maximum Absurdity 动规 求和最大的两段连续子列
- Codeforces Round #193 (Div. 2) B. Maximum Absurdity
- Codeforces Round #193 (Div. 2) B. Maximum Absurdity
- codeforces B. Maximum Absurdity 线段树查找最大值的位置
- Codeforces Round #193 (Div. 2) B. Maximum Absurdity (DP、RMQ两种解法)
- Maximum Absurdity
- cf_332b - Maximum Absurdity
- Maximum Absurdity(dp)
- Linux makefile 学习笔记
- C++中操作符重载
- 区间DP 洛谷 P1799 数列
- 阿里云双十一活动,如何购买2U 4G 5M的云主机最划算 1500/年 4500/三年
- Unity中预编译 宏定义
- CodeForces 332B Maximum Absurdity
- dij算法
- numpy深入理解(2) indexing: integer array & boolean array
- 3311-数据结构实验之串三:KMP应用
- 购物车结算功能拦截器
- Linux应用编程基础--(9)进程间通信
- 数据类型和变量
- 10月英语总结
- MySQL count(*),count(1)与count(column)区别