2895: H--唱歌的鸟儿

时间限制: 1 Sec  内存限制: 128 MB
提交: 26  解决: 10

题目描述

烟大东门有一棵大杨树,树上经常会有很多鸟儿飞来飞去。春天来了,学生物的小姜发现了一些规律。在这棵杨树上,假如来了一只雄鸟,它会在树上唱歌,如果 p 分钟内有一只雌鸟飞来和它一起唱,它们就会一直呆在树上不走了,否则 p 分钟之后,这只雄鸟就会飞走。假如来的是只雌鸟,如果没有落单的雄鸟在树上,它不会落到树上而是直接飞走,否则它会选择等待时间最长的雄鸟和它一起唱歌,就再也不走了。如果在某个时刻,同时发生了鸟儿的飞进飞出,那么先有一只鸟儿飞出枝头,再由另一只鸟儿飞上枝头。
现在小姜记录了一段时间飞来这棵杨树的鸟儿,每隔一分钟可能会飞来一只雌鸟或雄鸟,或者什么都没有发生,现在小姜想知道这段时间内树上最多有多少只鸟儿,你可以帮助他吗?

输入

首先输入一个正整数T,T <= 50,表示有T组数据。
每组第一行给出两个整数n、p,分别表示记录时间段的长度,和每个雄鸟最多能等待的时间(1 < n <= 1000,1 <= p <= 10)。
第二行为一个长度为n的字符串,由 0, 1, 2 三种字符构成,表示这段时间内鸟儿飞来的情况,0表示没有鸟飞来,1表示来的是雄鸟,2表示来的是雌鸟。

输出

每组数据输出一行只包含一个数,表示最多的鸟儿数量。

样例输入

5
10 1
1212121212
10 3
1111122222
16 3
2221112222211111
2 1
22
5 4
11111

样例输出

10
6
9
0
4

提示

参考第三组样例,第15只鸟飞上枝头的时候,第12只鸟已经离开了。第12只鸟离开的原因是因为第15只是雄鸟,如果第15只是雌鸟,第12只就不会飞走了。

你  离  开  了  ,  我  的  世  界  里  只  剩  下  雨  。  。  。

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#define N 1005
struct node
{int a,b;
} f[N];
char str[N];
int max(int a,int b)
{return a>b?a:b;
}
int main()
{int i,j,n,p,T;scanf("%d",&T);while(T--){scanf("%d%d",&n,&p);memset(f,0,sizeof(f));scanf("%s",str);for(i=0; i<n; i++)f[i].a=str[i]-'0';for(i=0; i<n; i++){if(f[i].a==2){for(j=max(0,i-p); j<i; j++)if(f[j].a==1&&f[j].b!=-1){f[j].b=-1;f[i].b=-1;break;}}}int t=0,cnt=0,ans=0;for(i=0; i<n; i++){cnt=0;if(f[i].b==-1)t++;if(i-p<0)j=0;else j=i-p+1;for(; j<=i; j++)if(f[j].a==1&&f[j].b!=-1)cnt++;ans=max(ans,t+cnt);}printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/im0qianqian/p/5989615.html

YTU 2895: H--唱歌的鸟儿相关推荐

  1. YTU 3374: H胖胖的健身计划

    3374: H胖胖的健身计划 链接: 我在这里快点我. 题目描述 L老师布置了一道思考题,一个人一次可以上一个台阶,也可以上两个台阶,问上到n级台阶有多少种走法?H胖胖非常聪明,拿出胖胖的小手掐指算起 ...

  2. [YTU]_2354 (H 实现复数类中的加运算符重载【C++运算符重载】)

    #include <iostream> using namespace std; class Complex { public:Complex();//此函数必须定义Complex(dou ...

  3. 用python提取字符串的中英文——建议收藏反复观看

    python中提取字符串的中文或英文 一. re中的sub函数 1.1 提取中文 1.2 提取英文 1.3 提取数字 二. re中的findall函数 2.1 提取中文 2.2 提取英文 2.3 提取 ...

  4. 《Kotlin从小白到大牛》第28章:项目实战1:开发PetStore宠物商店项目

    第28章 项目实战1:开发PetStore宠物商店项目 前面学习的Kotlin知识只有通过项目贯穿起来,才能将书本中知识变成自己的.通过项目实战读者能够了解软件开发流程,了解所学知识在实际项目中使用的 ...

  5. 提高说话能力的实际操作方法

    以往我也看过很多提高说话的技巧,然而大都是在讲道理或者举例子,并没有什么教给我可以切身实用的办法.但是提高说话的技巧一直困扰着我,我一直在寻找好办法. 今天,偶然从知乎看到一个提高说话技巧的方法,出自 ...

  6. 番外4宁夏酒庄的斯巴达克斯——《地与光》

    "--安闲啁啾的鸟儿,大多均以昆虫或种子为食的,因而它们在不断地毁灭着生命:我们抑或忘记了这些唱歌的鸟儿,或它们下的蛋,或它们的雏鸟,也多被鸷鸟和猛兽所毁灭--" --<物种 ...

  7. 【重排版】番外4 宁夏酒庄的斯巴达克斯

    "--安闲啁啾的鸟儿,大多均以昆虫或种子为食的,因而它们在不断地毁灭着生命:我们抑或忘记了这些唱歌的鸟儿,或它们下的蛋,或它们的雏鸟,也多被鸷鸟和猛兽所毁灭--" --<物种 ...

  8. 番外4 宁夏酒庄的斯巴达克斯——《硅命1825:番外No.4 Tue 12 May 2022》

    "--安闲啁啾的鸟儿,大多均以昆虫或种子为食的,因而它们在不断地毁灭着生命:我们抑或忘记了这些唱歌的鸟儿,或它们下的蛋,或它们的雏鸟,也多被鸷鸟和猛兽所毁灭--" --<物种 ...

  9. YTU之挑剔的H胖胖

    题目描述 最近H胖胖可爱吃东西了,既想吃草莓,又想吃菠萝,还想吃肉夹馍,可是他有点挑剔,想吃的任何东西都有一个最小值(本胖胖最少要这些才不会不高兴),当然也有最大值(给本胖胖过多,本胖胖也不会喜欢的) ...

最新文章

  1. 2021年大数据Hive(三):手把手教你如何吃透Hive数据库和表操作(学会秒变数仓大佬)
  2. java实现fread_fread函数读取到的数据和实际数据不一样
  3. C++数字是否为质数的函数的简单有效实现(附完整源码)
  4. jQuery中关于Ajax的详解
  5. The credentials you provided during SQL Server 2008 install are invalid
  6. Android UI 备忘:DrawerLayout
  7. SpringBoot常用注解以及作用
  8. html5 手机端分页,哪位大神可以提供个移动端h5下拉分页的方法
  9. python序列类型包括哪三种映射类型_python序列类型包括哪三种
  10. java简单入门教程_史上最快速最简单的java入门教程
  11. 智慧城市顶层设计策略方案(ppt)
  12. CAD二次开发--自动加载插件
  13. opencv 之 颜色通道提取
  14. 论文阅读:Securely Outsourcing Neural Network Inferenceto the Cloud with Lightweight Techniques
  15. 数据基础---《利用Python进行数据分析·第2版》第12章 pandas高级应用
  16. Asp.net的CheckBox控件和CheckBoxList控件
  17. Java毕设项目二次元文化网站(java+VUE+Mybatis+Maven+Mysql)
  18. Pre-Trained_Models_Past_Present_and_Future
  19. linux 列转行函数,GP行转列、列转行函数
  20. Perl:化繁为简 (转载)

热门文章

  1. 点对点 与 端对端 的区别
  2. 【支付接口】玩一下支付宝沙箱环境
  3. 关于onsubmit事件return的使用
  4. 单件模式 Single Pattern HeadFirst学习系列
  5. 关于用于棒球联赛成绩管理系统的技术
  6. linux脚本read的用法
  7. Event ID 1096 — Group Policy
  8. 域名怎么买:一口价购买!
  9. 封基优选法,重视可分红比例
  10. 365. 水壶问题-暴力模拟倒水过程-递归法