Poetize6: Acting Cute

3042: Acting Cute

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 59  Solved: 36
[Submit][Status]

Description

正在rainbow的城堡游玩的freda恰好看见了在地毯上跳舞卖萌的水叮当……于是……
freda:“呜咕>_< 我也要卖萌T_T!”
rainbow给了freda N秒的自由活动时间,不过由于刚刚游览城堡有些累了,freda只想花B秒的时间来卖萌,剩下的时间她要在rainbow的城堡里睡个好觉好好休息一下。
rainbow给这N秒每秒定义了一个值Ui,如果第i秒钟freda在卖萌,那么她可以获得Ui点卖萌指数lala~
freda开始卖萌后可以随时停止,休息一会儿之后再开始。不过每次freda开始卖萌时,都需要1秒来准备= =,这一秒是不能获得卖萌指数的。当然,freda卖萌和准备的总时间不能超过B。
更特殊的是,这N秒钟时间是环形的。也就是freda可以从任意时间开始她的自由活动并持续N秒。
为了使自己表现得比水叮当更萌,现在freda想知道,她最多能获得多少卖萌指数呢?

Input

第一行包含两个整数N和B。
第2~N+1行每行一个整数,其中第i+1行的整数表示Ui。

Output

输出一个整数,表示freda可以获得的最大卖萌指数。

Sample Input

5 3
2
0
3
1
4

Sample Output

6

对于100%的数据,0<=B<=N<=3600,0<=Ui<=200000。

样例解释:
freda选择从第2秒开始她的自由活动,持续N秒(2、3、4、5、1)。第4秒开始准备,第5、1秒卖萌(时间是环形的),获得2+4=6点卖萌指数。

HINT

Source

Poetize6

题解:

我连n^3的DP都没想出,给跪了!

看了题解很好想。。。

f[i][j][k]表示走到i,卖萌了j次,当前状态是k,k=0表没有卖萌,k=1表处于卖萌状态。

然后

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][1]+a[i])

然后如果是环形的话

我们可以证明如果最优解不是从1出发的,那么n和1的肯定都在卖萌!

否则 我们就可以从1开始DP从而得出这个最优值!

应该很好理解的。

然后我们强制把n和1都设定为处在卖萌状态了,然后再做一次DP

出题人的题解:http://hi.baidu.com/lydrainbowcat/item/0691bf7f2c46503c70442338

不滚动也能A,我作死写了滚动结果t放在循环里了。。。查了0.5h。。。sad

具体实现如下:

代码:

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cmath>
 4 #include<cstring>
 5 #include<algorithm>
 6 #include<iostream>
 7 #include<vector>
 8 #include<map>
 9 #include<set>
10 #include<queue>
11 #include<string>
12 #define inf 1000000000
13 #define maxn 5000
14 #define maxm 500+100
15 #define eps 1e-10
16 #define ll long long
17 #define pa pair<int,int>
18 #define for0(i,n) for(int i=0;i<=(n);i++)
19 #define for1(i,n) for(int i=1;i<=(n);i++)
20 #define for2(i,x,y) for(int i=(x);i<=(y);i++)
21 #define for3(i,x,y) for(int i=(x);i>=(y);i--)
22 #define mod 1000000007
23 using namespace std;
24 inline int read()
25 {
26     int x=0,f=1;char ch=getchar();
27     while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();}
28     while(ch>=‘0‘&&ch<=‘9‘){x=10*x+ch-‘0‘;ch=getchar();}
29     return x*f;
30 }
31 int n,m,t,ans,a[maxn],f[2][maxn][2];
32 void dp()
33 {
34     t=0;
35     for2(i,2,n)
36     {
37      t=1-t;
38      for0(j,m)
39       {
40           f[t][j][0]=max(f[1-t][j][0],f[1-t][j][1]);
41           if(j)f[t][j][1]=max(f[1-t][j-1][0],f[1-t][j-1][1]+a[i]);
42       }
43     }
44 }
45 int main()
46 {
47     freopen("input.txt","r",stdin);
48     freopen("output.txt","w",stdout);
49     n=read();m=read();
50     for1(i,n)a[i]=read();
51     if(m<=1)printf("0\n");
52     for0(i,1)for0(j,m)for0(k,1)f[i][j][k]=-inf;
53     f[0][0][0]=f[0][1][1]=0;
54     dp();ans=max(f[t][m][0],f[t][m][1]);
55     for0(i,1)for0(j,m)for0(k,1)f[i][j][k]=-inf;
56     f[0][1][0]=f[0][1][1]=a[1];
57     dp();ans=max(ans,f[t][m][1]);
58     printf("%d\n",ans);
59     return 0;
60 }

时间: 2024-10-10 15:59:22

Poetize6: Acting Cute的相关文章

越狱Season 1-Episode 4: Cute Poison

Season 1, Episode 4: Cute Poison [Previously on Prison Break] previously: 以前地 前情提要 -Burrows: I didn't kill that man, Michael 那人不是我杀的 Michael -Michael: the evidence says you did evidence: 证据证明 有证据的 -Burrows: I was set up 我是被陷害的 -police: Put down your

[2015-12-21]OMG美语每日笔记-Cute name for pets.

坚持学习英语,OMG口语非常长不错,坚持每天整理.学英语坚持最重要,学英语坚持最重要,学英语坚持最重要说三遍! dog,doggie 不像冬天 My family has a dog named Jake My little cousin Nina calls him "doggie" and chases him around the house. 我家有只狗交杰克,我的小表妹Nina叫它狗狗,满屋子追着它跑. cat,kitty cat 跟夏天似的 Global warming 全

pg 1.277 is active+clean+inconsistent, acting 故障

ceph health detail 报错ceph health detailHEALTH_ERR 1 pgs inconsistent; 1 scrub errorspg 1.277 is active+clean+inconsistent, acting [12,1,10]1 scrub errors 解决办法[[email protected] nova]# ceph pg repair 1.277instructing pg 1.277 on osd.145 to repair[[ema

「Poetize6」Candle

描述 蜡烛商店中有10种蜡烛,形状分别是0~9这10个数字,不过对于每种蜡烛,商店的存货量仅有一根.另外,忘川沧月已经有了一个"+"形状的蜡烛.忘川沧月想购买一些蜡烛,使得他的家族中所有人的年龄都可以用他购买的数字和"+"表示出来.例如12就有11种表示方法:12.0+12.2+10.3+9.4+8.5+7.7+5.8+4.9+3.10+2.12+0.注意6+6.1+11.11+1是不行的,因为每种蜡烛仅有一根.但是由于这种蜡烛很贵,忘川沧月想购买尽量少的蜡烛来达到

Codeforces 1166 D. Cute Sequences 构造

这场好有毒啊~进去就被C.E俩结论题关了. 赛后补题发现其实D也很容易构造. 题意是请你构造一个长度在50以内的序列,第一项是a,最后一项是b,序列的每一项都是前缀和再加上$r_{i}$,然后规定$1<=r_{i}<=m$. 显然我们可以发现在$r_{i}$对$x_{j}$的贡献是非常容易计算的 for(i=1;i<=50;i++)for(i0=0;i0<i;i0++)dic[i]+=dic[i0]; 用dic[i]表示$r_{p}$对$x_{p+i}$的贡献. 然后我们要规定序列

&lt;老友记&gt;学习笔记

这是六个人的故事,从不服输而又有强烈控制欲的monica,未经世事的千金大小姐rachel,正直又专情的ross,幽默风趣的chandle,古怪迷人的phoebe,花心天真的joey——六个好友之间的情路坎坷,事业成败和生活中的喜怒哀乐,无时无刻不牵动着彼此的心,而正是正平凡的点点滴滴,却成为最令人感动与留恋的东西. 人物:1.瑞秋•格林(RACHEL GREENE)由珍妮佛•安妮斯顿(Jennifer Aniston)扮演 瑞秋是莫妮卡的高中同学,在与牙医未婚夫的婚礼上脱逃至莫妮卡处. 2.罗

英语电影剧本大全(中英对照)

目     录 <泰坦尼克号>全部英文剧本 TV REPORTER: Treasure hunter Brock Lovett is best known for finding Spanish gold off islands in the best Caribbean. LIZZY: It’s OK, I’ll get you in a minutes. Come on. TV REPORTER: Now he is using Russian subs to reach the most

该分手的八大征兆

该分手的八大征兆 Relationships are important – to each other, to our families, to our friends, to the people we care about. There comes a point in romantic relationships when things become serious and it becomes an actual Relationship, one where the idea of

哪些英语用法是普通中国学生最生疏的?

请附上例句和解释,谢谢!如果能分别说一下美国.英国.澳大利亚的本地用法更好. 传送门:你知道哪些中国人普遍生疏但意境很美的英语词汇? - 英语翻译哪些英语母语者常用的词组对于普通中国大学生来说是生疏的? - 英语翻译 谢老珂 ,骨子里是文科生 5360 人赞同 4.14.2016 更新 36-40.(谢谢知友们的赞,留言和私信.这个搬运工的活儿我做得很开心.会继续更新.) 11.21.2015更新 31-35.8.25.2015更新 26-30.8.11.2015更新 23-25.8.4.201