zstu 萌新吃果果
来源:互联网 发布:matebook x ubuntu 编辑:程序博客网 时间:2024/06/05 09:37
萌新吃果果
Description
开学第一天,萌新要排排坐吃果果啦,KI要求萌新们坐成一排。
现在萌新们必须要按KI的秩序表一个一个地就坐。
萌新中包括男孩子、女孩子和扶她。
男孩子会毫不犹豫地坐到当前已经坐好的人的后一个座位,女孩子在入座时会和前面的**男孩子**的隔一个座位坐,而扶她会观察前面连续坐的人数,若人数大于等于心理容忍度$k$,那么扶她会隔一个座位坐,否则直接坐到当前的后一个座位。
那么问题来了,KI想知道至少需要多少把椅子,才能让这些萌新正好坐成一排。
Input
第一行有一个整数$T$,表示测试的组数。
接下来每一个测试组第一行输入$n, k$,表示总人数,和扶她的心理容忍度。
第二行输入一个长度为$n$的字符串,表示KI的秩序表。字符串仅由$a, b, c$三种字符串组成,分别指代男孩子、女孩子和扶她。
数据范围:T <= 50, 1 <= n,k <=100000
Output
对于每个测试组输出一行,表示最少需要的椅子数量。
Sample Input
26 2aaabcc8 3abbccbaa
Sample Output
810
HINT
例如样例中的第一组数据,aaabcc, 且 k = 2,最后的座位坐法如下,需要8个座位
aaa_bc_c
原题链接:http://oj.acm.zstu.edu.cn/JudgeOnline/problem.php?id=4246
#include<stdio.h>#include<string.h>const int maxn=1e5+10;char s[maxn];int main(){ int t; scanf("%d",&t); while(t--) { memset(s,'\0',sizeof(s)); int n,k,i; scanf("%d%d%s",&n,&k,s); int len=strlen(s); int cnt=0,ans=0,last=0; for(i=0;i<len;i++) { if(s[i]=='a') { last=1;ans++; } if(s[i]=='b') { if(last==1) { ans++; cnt=0; } ans++; last=0; } if(s[i]=='c') { last=0; if(cnt>=k) { ans++; cnt=0; } ans++; } cnt++; } printf("%d\n",ans); } return 0;}
ps:什么也不说了,主要就是标记变量的灵活使用,自己写了个其他法的竟然超时。。
1 0
- zstu 萌新吃果果
- zstu-2605
- zstu 3999
- zstu 4246萌新吃果果(2016年新生赛暨全国新生邀请赛)
- ZSTU-2331:Knight Moves
- ZSTU-1826:Square
- Edge Case ZSTU
- zstu 4116: Galactic Warlords
- ZSTU 4119 Juice
- zstu 1052 水题。。模拟
- zstu 3125(线段树)
- zstu 2555 数字游戏
- zstu 2554 过河卒
- zstu 2553 滑雪
- zstu 2552 马棚问题
- zstu 2545 地道战
- zstu 1090 Common Subsequence
- zstu 1024 Wooden Sticks
- Android M 新控件了解学习
- [Android]安全第二步,基础的开始,分析平时写法与安全
- 第13章 服务器端创建
- CCF_201604-3_路径解析
- VBV大小-H.264
- zstu 萌新吃果果
- day06_Student项目系统想法
- Android图表库MPAndroidChart(九)——神神秘秘的散点图
- 跳台阶的动态规划(DP)解法
- mybatis mysql count(*) 返回结果为null的解决
- 利用程序解决三扇门问题(java)
- C语言结构体(struct)常见使用方法
- Php抽象类和抽象方法
- mysql sql语句提取截取字段值中的数字字符串,动态截图指定字符串数字