noi 9268 酒鬼

题目链接:http://noi.openjudge.cn/ch0206/9268/

题意:有N瓶酒,不能连续喝>=3瓶的酒,问能喝的最大的酒量。

f[i][j] 前 I 瓶中连续喝了 j 瓶的最大酒量

f[i][0] = f[i-1][3];

f[i][1,2] = f[i-1][j-1] + a[i];

#include <bits/stdc++.h>
using namespace std;

int a[710];
int f[710][4];

int main()
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    for(int i=1;i<=n;i++) {
        f[i][0] = f[i-1][3];
        int maxx = f[i][0];
        for(int j=1;j<=2;j++) {
            f[i][j] = f[i-1][j-1] + a[i];
            maxx = max(maxx,f[i][j]);
        }
        f[i][3] = maxx;
    }
    printf("%d\n",f[n][3]);

    return 0;
}
时间: 2024-10-12 12:13:41

noi 9268 酒鬼的相关文章

【noi 2.6_9268】酒鬼(DP)

题意:有N瓶酒,不能连续喝>=3瓶的酒,问能喝的最大的酒量. 解法:同前一题相似,可以f[i][j]表示前i瓶中连续喝了j瓶的最大酒量.1.f[i][0]=f[i-1][3] ; 2.i=1或2时,f[i][j]=f[i-1][j-1]+a[i];   3. f[i][3]=mx;也可以只用f[i]. 1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<iostream&

[NOI2011]Noi嘉年华

题目描述 NOI2011 在吉林大学开始啦!为了迎接来自全国各地最优秀的信息学选手,吉林大学决定举办两场盛大的 NOI 嘉年华活动,分在两个不同的地点举办.每个嘉年华可能包含很多个活动,而每个活动只能在一个嘉年华中举办. 现在嘉年华活动的组织者小安一共收到了 n个活动的举办申请,其中第 i 个活动的起始时间为 Si,活动的持续时间为Ti.这些活动都可以安排到任意一个嘉年华的会场,也可以不安排. 小安通过广泛的调查发现,如果某个时刻,两个嘉年华会场同时有活动在进行(不包括活动的开始瞬间和结束瞬间)

bzoj4622 [NOI 2003] 智破连环阵

Description B国在耗资百亿元之后终于研究出了新式武器——连环阵(Zenith Protected Linked Hybrid Zone).传说中,连环阵是一种永不停滞的自发性智能武器.但经过A国间谍的侦察发现,连环阵其实是由M个编号为1,2,…,M的独立武器组成的.最初,1号武器发挥着攻击作用,其他武器都处在无敌自卫状态.以后,一旦第i(1<=i< M)号武器被消灭,1秒种以后第i+1号武器就自动从无敌自卫状态变成攻击状态.当第M号武器被消灭以后,这个造价昂贵的连环阵就被摧毁了.为

NOI 2001 &amp; luogu P2024 &amp; POJ 1182食物链

食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 71707   Accepted: 21240 Description 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种. 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是"1 X Y",表示X和Y是同

NOI 6045 开餐馆

http://noi.openjudge.cn/ch0206/6045/ 描述 北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择.小明打算从中选择合适的位置开设一些餐馆.这 n 个地点排列在同一条直线上.我们用一个整数序列m1, m2, ... mn 来表示他们的相对位置.由于地段关系,开餐馆的利润会有所不同.我们用pi 表示在mi 处开餐馆的利润.为了避免自己的餐馆的内部竞争,餐馆之间的距离必须大于k.请你帮助小明选择一个总利润最大的方案. 输入标准的输入包含若干组测试

noi 9271 奶牛散步

题目链接:http://noi.openjudge.cn/ch0206/9271/ 同noi 踩方格,但是题目有问题,%12345,我也是看了discuss才知道的. #include <bits/stdc++.h> using namespace std; unsigned long long d[1005]; int main() { d[1] = 3; d[2] = 7; for(int i=3;i<=1001;i++) d[i] = (2*d[i-1] + d[i-2])%123

noi 8787 数的划分

题目链接:http://noi.openjudge.cn/ch0206/8787/ 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 简直跟分苹果一模一样. #include <stdio.h> using namespace std; int d[15][15]; int dp(int m,int n) { if(m==0||n==1) return 1; if(m<n) return dp(m,m); else return dp(m,n-1)+dp(m-n,n);

NOI 动态规划题集

刚刚开始做,慢慢补齐. 登山 http://noi.openjudge.cn/ch0206/1996/ http://paste.ubuntu.com/23402475/ 吃糖果 http://noi.openjudge.cn/ch0206/1944/ http://paste.ubuntu.com/23402479/ 移动路线 http://noi.openjudge.cn/ch0206/2718/ http://paste.ubuntu.com/23402490/ 摘花生 http://no

【noi 2.2_7891】一元三次方程求解(二分枚举)

对于noi上的题有2中解法: 1.数据很小(N=100),可以直接打for循环枚举和判断. 2.不会“三分”,便用二分.利用“两根相差>=1”和 f(x1)*f(x2)<0,转换意思为[x,x+1]内不会包含两个根,这样枚举可以保证不漏解.因此,枚举一个个根所在的区间,再用二分枚举找出根.其中,若N=10^5,由于保留2位小数,最好精确到4位小数计算.时间复杂度 O(N)=10^5+3*log(10^4),约为10^5. 以下附上二分的代码—— 1 //20160908 Ann 2 #incl