题解黑白奶牛(代码片段)

kcn999 kcn999     2023-03-04     760

关键词:

题目描述

        有N只奶牛从左往右排成一行,编号是1至N。这N只奶牛当中,有一些奶牛是黑色的,其余的是白色的。

        color[i]表示第i只奶牛的颜色,如果color[i]=0则表示第i头奶牛是黑色的,如果color[i]=1则表示第i头奶牛是白色的。

        六一奶牛儿童节快到了,农场主Farmer John要从这N头奶牛当中,挑选尽可能多的奶牛去参加晚会。

        Farmer John挑选奶牛的原则是:挑选编号是连续的一段奶牛,这一段奶牛的颜色必须全部是白色的。

        Farmer John有一个魔法棒,每用一次魔法棒就可以把一头黑色的奶牛变成一头白色的奶牛,魔法棒最多只能使用K次。

       在上述条件下,最多可以有多少头奶牛去参加晚会呢?

 

输入输出格式

输入格式

        第一行,两个整数,N和K。

        第二行,N个整数,第i个整数就是color[i],color[i]要么是0,要么是1。

 

输出格式

        一个整数,表示最多有多少头奶牛可以去参加晚会。

 

输入输出样例

输入样例一

11 0

1 1 0 0 1 1 1 1 0 1 1

 

输出样例一

 

输入样例二

11 1

1 1 0 0 1 1 1 1 0 1 1

 

输出样例二

7

 

说明

样例说明

        样例一说明:由于K=0,所以不能使用魔法棒,所以挑选编号是5至8的奶牛去参加晚会。

        样例二说明:由于K=1,所以最多可以使用1次魔法棒,使用魔法棒把第9头奶牛变成白色奶牛,然后挑选编号是5至11的奶牛去参加晚会。

 

题解

         暴力尺取法遍历区间一遍即可,用魔法棒时就--k,恢复时就++k。

#include<iostream>
#include<string>
using namespace std;
int n,k,color[100000000],a[100000000],sum,smax;
int main()

    cin>>n>>k;
    for(int i=1;i<=n;i++)
    
        cin>>color[i];
        a[i]=a[i-1];
        if(color[i]==0) a[i]++;
    
    for(int l=0,r=1;r<=n;r++)
    
        if(a[r]-a[l]<=k)
        
            sum++;
            if(r==n&&sum>smax) smax=sum;
        
        else
        
            if(sum>smax) smax=sum;
            l++;
        
        
    
    cout<<smax;
    return 0;

 

题解p1868饥饿的奶牛(代码片段)

...提供y-x+1个价值,选择任意不重复的区间,使价值最大。题解由题意可知, 查看详情

题解款待奶牛(代码片段)

题目描述  FarmerJohn有n(1≤n≤2000)个美味的食物,他想卖掉它们来赚钱给奶牛。这些食物放在一些箱子里,它们有些有趣的特性:  (1)这些食物被编号为1-n,每一天FarmerJohn可以从这排箱子的头部或者尾部取出食物去卖... 查看详情

题解幸运奶牛(代码片段)

...    对于100%的数据,1≤N≤2000000000。 题解    小学奥数,直接上代码。#include<cstdio>intmain()intn;scanf("%d",&n);printf("%d",n/2+n/3-n/6);return0;参考程序  查看详情

holiday题解(代码片段)

题目描述如下:经过几个月辛勤的工作,FJ决定让奶牛放假。假期可以在1…N天内任意选择一段(需要连续),每一天都有一个享受指数W。但是奶牛的要求非常苛刻,假期不能短于P天,否则奶牛不能得到足够的休息;假期也不能... 查看详情

奶牛晒衣服(题解)(代码片段)

 奶牛晒衣服【问题描述】在熊大妈英明的带领下,时针和他的同伴生下了许多牛宝宝。熊大妈决定给每个宝宝都穿上可爱的婴儿装。于是,为牛宝宝洗晒衣服就成了很不爽的事情。圣人王担负起了这个重任。洗完衣服后,你... 查看详情

题解luogu2915[usaco08nov]奶牛混合起来mixedupcows(代码片段)

题目描述EachofFarmerJohn’sN(4<=N<=16)cowshasauniqueserialnumberS_i(1<=S_i<=25,000).Thecowsaresoproudofitthateachonenowwearshernumberinagangstamannerengravedinlargelettersonagoldplatehung 查看详情

题解luogup3052usaco12摩天大楼里的奶牛cowsinaskyscraper(代码片段)

迭代加深搜索基础题目描述AlittleknownfactaboutBessieandfriendsisthattheylovestairclimbingraces.Abetterknownfactisthatcowsreallydon’tlikegoingdownstairs.Soafterthecowsfinishracingtothetopoftheirfavoriteskyscr 查看详情

luogu2858奶牛零食题解--区间dp(代码片段)

题目链接https://www.luogu.org/problemnew/show/P2858一句话题意:https://cn.vjudge.net/problem/POJ-3186#author=Re0分析很显然这道题是不行滴,但是把这个数列看作从一个个区间倒着向外扩展取数而成的话,这样就保证了最优子结构和无后效性两个特点,... 查看详情

题解p1894[usaco4.2]完美的牛栏theperfectstall(代码片段)

题面农夫约翰上个星期刚刚建好了他的新牛棚,他使用了最新的挤奶技术。不幸的是,由于工程问题,每个牛栏都不一样。第一个星期,农夫约翰随便地让奶牛们进入牛栏,但是问题很快地显露出来:每头奶牛都只愿意在她们喜... 查看详情

题解晚餐队列安排(代码片段)

题目描述    为了避免餐厅过分拥挤,FJ要求奶牛们分2批就餐。每天晚饭前,奶牛们都会在餐厅前排队入内,按FJ的设想,所有第2批就餐的奶牛排在队尾,队伍的前半部分则由设定为第1批就餐的奶牛占据。由于奶... 查看详情

洛谷p1259黑白棋子的移动题解(代码片段)

本蒟蒻这题用的打表做法,其实也可以理解为是一种递推。先来观察一下样例:当n为7时,输出共有14行,易得输出行数为2n。ooooooo*******--oooooo--******o*oooooo******--o*ooooo--*****o*o*ooooo*****--o*o*oooo--****o*o*o*oooo****--o*o*o*ooo--***o*o*o*o*ooo*o**... 查看详情

题解细菌(代码片段)

... 选择:1,2,3,5,6,这样只有1#和2#两种细菌。 题解    n<=1000,则直接枚举奶牛显然不行。我们可以枚举细菌,然后求出当前细菌搭配下的最大可选奶牛数量即可。#include<iostream>usingnamespaces 查看详情

题解晋升者计数promotioncounting[usaco17jan][p3605](代码片段)

【题解】晋升者计数PromotionCounting[USACO17JAN][P3605]奶牛们又一次试图创建一家创业公司,还是没有从过去的经验中吸取教训。!牛是可怕的管理者!【题目描述】奶牛从\(1\)~\(N(1≤N≤1e5)\)进行了编号,把公司组织成一棵树,\(1\)号奶... 查看详情

题目荟萃删数字约数黑白牛奶(代码片段)

删数字时间限制:?1Sec??内存限制:?128MB题目描述奶牛在数学课上学习了整除的概念。农夫FarmerJohn为了考验它的数学水平,于是在白纸上写了正整数T。由于农夫不喜欢数字0,所以正整数T是不含数字0的。奶牛可以删除T的若干位数字... 查看详情

洛谷p2676超级书架题解(代码片段)

题目传送门题目一看就是贪心。C++福利来了:sort。基本思路就是:要使奶牛最少那么肯定高的奶牛先啦。直接排序一遍(从高到矮)然后while,搞定!#include<bits/stdc++.h>#definelllonglongusingnamespacestd;llN,B,H[20010];boolcmp(intx,inty)retur... 查看详情

p2925[usaco08dec]干草出售hayforsale题解(代码片段)

(Hugedp第一题)题目描述农民john面临一个很可怕的事实,因为防范失措他存储的所有稻草给澳大利亚蟑螂吃光了,他将面临没有稻草喂养奶牛的局面。在奶牛断粮之前,john拉着他的马车到农民Don的农场中买一些稻草给奶牛过冬。... 查看详情

题解棋子(代码片段)

题目描述  小Z在家闲得无聊,摆弄起了围棋棋子。也许是小Z有自虐倾向,他出了个难题给自己,结果竟然把自己难住了。你作为他的朋友,决定帮助他解决难题。  有一个m×n的棋盘,需要在上面摆满黑白棋子。小Z有一... 查看详情

题解p2340奶牛会展(代码片段)

此题搜索可以过!!!看到此题,第一想法,是01背包,然而,作为一个蒟蒻,我怎么会打正解呢?,于是就开始打dfs!想要完成此题,普通的搜索肯定是过不了的(不然要dp干嘛),所以,我们要考虑剪枝比较容易的,我们可以轻松想出来剪枝:(... 查看详情