3622 假期

3622 假期

时间限制: 1 s

空间限制: 64000 KB

题目等级 : 黄金 Gold

题解

题目描述 Description

经过几个月辛勤的工作,FJ决定让奶牛放假。假期可以在1…N天内任意选择一段(需要连续),每一天都有一个享受指数W。但是奶牛的要求非常苛刻,假期不能短于P天,否则奶牛不能得到足够的休息;假期也不能超过Q天,否则奶牛会玩的腻烦。FJ想知道奶牛们能获得的最大享受指数。

输入描述 Input Description

第一行:N,P,Q.

第二行:N个数字,中间用一个空格隔开。

输出描述 Output Description

一个整数,奶牛们能获得的最大享受指数。

样例输入 Sample Input

5 2 4

-9 -4 -3 8 -6

样例输出 Sample Output

5

数据范围及提示 Data Size & Hint

50% 1≤N≤10000

100% 1≤N≤100000

1<=p<=q<=n

指数在longint范围之内。

提示:

选择第3-4天,享受指数为-3+8=5。

分类标签 Tags 点此展开

暂无标签

题解:

动态规划,先求一个前缀和sum,ans=max(ans,sum[i]-sum[k])(i-p<=k<=i-q) 
根据上式,若ans最大,则sum[k]尽量小,所以单调队列维护区间i-q~i-p的最小值即可。

AC代码:

#include<cstdio>
#define ll long long
using namespace std;
const int N=1e5+10;
int n,sd,ed,q[N<<1];
ll tmp,ans=-0x7fffffff;
ll sum[N];
int main(){
    scanf("%d%d%d",&n,&sd,&ed);
    for(int i=1;i<=n;i++) scanf("%lld",&sum[i]),sum[i]+=sum[i-1];
    int h=1,t=0;
    for(int i=sd;i<=n;i++){
        while(sum[q[t]]>=sum[i-sd]&&h<=t) t--;
        q[++t]=i-sd;
        while(q[h]<i-ed&&h<=t) h++;
        tmp=sum[i]-sum[q[h]];
        if(ans<tmp) ans=tmp;
    }
    printf("%lld",ans);
    return 0;
}
时间: 2024-10-24 22:41:19

3622 假期的相关文章

假期(codevs 3622)

题目描述 Description 经过几个月辛勤的工作,FJ决定让奶牛放假.假期可以在1-N天内任意选择一段(需要连续),每一天都有一个享受指数W.但是奶牛的要求非常苛刻,假期不能短于P天,否则奶牛不能得到足够的休息:假期也不能超过Q天,否则奶牛会玩的腻烦.FJ想知道奶牛们能获得的最大享受指数. 输入描述 Input Description 第一行:N,P,Q. 第二行:N个数字,中间用一个空格隔开. 输出描述 Output Description 一个整数,奶牛们能获得的最大享受指数. 样例输

[ZJOI2009]假期的宿舍

1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2870  Solved: 1213[Submit][Status][Discuss] Description Input Output Sample Input 1 3 1 1 0 0 1 0 0 1 1 1 0 0 1 0 0 Sample Output ˆ ˆ HINT 对于30% 的数据满足1 ≤ n ≤ 12.对于100% 的数据满足1 ≤ n ≤

HDU 3622 Bomb Game(二分+2-SAT)

Bomb Game Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5396    Accepted Submission(s): 1925 Problem Description Robbie is playing an interesting computer game. The game field is an unbounde

HDOJ 3622 Bomb Game 2-sat

http://acm.hdu.edu.cn/showproblem.php?pid=3622 题意:上个月写的,题目好像是说一对点要选一个引爆,引爆半径自己选,任意两圆不能相交,最后分数是所有圆的最小半径,求最大分数. 分析:二分半径,2-sat判定可行性. 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #include<cmath> 5 using namespace std;

BZOJ 3622(已经没有什么好害怕的了-Dp+容斥原理)

3622: 已经没有什么好害怕的了 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 7  Solved: 6 [Submit][Status] Description Input Output Sample Input 4 2 5 35 15 45 40 20 10 30 Sample Output 4 HINT Source 2014湖北省队互测week2 PS:本题的数据中能量互不相同. 1.我们计算出糖果>药片的组数=k 2.我们计算出f[

bzoj 1433: [ZJOI2009]假期的宿舍 -- 最大流

1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MB Description Input Output Sample Input 1 3 1 1 0 0 1 0 0 1 1 1 0 0 1 0 0 Sample Output ˆ ˆ HINT 对于30% 的数据满足1 ≤ n ≤ 12.对于100% 的数据满足1 ≤ n ≤ 50,1 ≤ T ≤ 20. 我们从源点向所有住宿的人连边,从所有的床位连向汇点,然后再从人连向他所

春节假期第4日湖南旅游再升温 部分景区突破最高承载量na

春节假期第4日湖南旅游再升温 部分景区突破最高承载量且还是有付出了够发个小财的彻底的肖卿打进了fm1d2l.umgzb.cn/mvb8k0.umgzb.cn/t55jhq.umgzb.cn/x151y2.umgzb.cn/u552g6.umgzb.cn/oq91wq.umgzb.cn/iz22pm.umgzb.cn/b9omrp.umgzb.cn/zbk15b.umgzb.cn/a9j4lt.umgzb.cn/x9271l.umgzb.cn/p6ohtt.umgzb.cn/pn0uo3.umgz

假期阅读笔记八

架构之美--系统架构(二) 时间很快,转眼假期过去了一半,理所当然<架构之美>也已经阅读了一半.直到今天,我才明白"不积跬步,无以至千里:不积小流,无以成江海!"的真正内涵,只要每天都月读一点点书籍,时间久了,再厚的书籍也会读完.今天我阅读的是<架构之美>的第八章--一个容错操作系统环境,在这一章中我的感悟最深刻. 在刚刚结束一个学期里,给我印象最深的一个名词就是系统容错性.容错是指在故障存在的情况下计算机系统不失效,仍然能够正常工作的特性.容错即是Fault

bzoj1433:[ZJOI2009]假期的宿舍

明显的二分图最大匹配. #include<cstdio> #include<cstring> #include<cctype> #include<algorithm> #include<bitset> using namespace std; #define rep(i,s,t) for(int i=s;i<=t;i++) #define dwn(i,s,t) for(int i=s;i>=t;i--) #define clr(x,c