[洛谷1580]yyy loves Easter_Egg I
题目背景
Soha的出题效率着实让人大吃一惊。OI,数学,化学的题目都出好了,物理的题还没有一道。于是,Huntfire,absi2011,lanlan对soha进行轮番炸,准备炸到soha出来,不料,人群中冲出了个kkksc03……
题目描述
yyy loves OI(Huntfire),yyy loves Maths(lanlan),yyy loves Chemistry(absi2011)对yyy loves Physics(soha)进行轮番炸,轰炸按照顺序进行,顺序为Huntfire,lanlan,absi2011。
现在这一题中吗,我们不考虑太复杂的队形形式。我们认为只要这一句内含有且恰好含有一次@,@的人和上一句话一样就算为队形。
比如以下也视为队形
yyy loves OI : @yyy loves Microelectronic
yyy loves Maths : @yyy loves Microelectronic 我佩服soha的出题效率
yyy loves OI : @yyy loves Microelectronic +1
yyy loves Chemistry : +1 @yyy loves Microelectronic
若艾特的人与第一个人不同,就算队形被打破。若这个人在队形被打破之前出来吱声了,或者就是他打破队形了,就算(油)炸成功了。若(油)炸成功,输出“Successful @某某某 attempt”,若队形被破坏先输出“Unsuccessful @某某某 attempt”,再输出队形第一次被破坏的行数与第一次破坏队形的人的id。如果队形一直没被打破,就先输出“Unsuccessful @某某某 attempt”,再输出队形的长度,最后输出"Good Queue Shape"/* yyy loves Microelectronic 是kkksc03*/
输入输出格式
输入格式:
N行,为轰炸开始后的一段消息记录,每行一条消息。消息格式:“消息发送者 + ‘ : ’+消息内容”,每行消息长度不超过1000。(中文用拼音代替了)
输出格式:
若(油)炸成功,输出“Successful @某某某 attempt”,若队形被破坏第一行输出“Unsuccessful @某某某 attempt”,接下来一行输出队形第一次被破坏的行数,第三行输出第一次破坏队形的人的id,如果队形一直没被打破,就先输出“Unsuccessful @某某某 attempt”,再输出队形的长度,最后输出"Good Queue Shape"
输入输出样例
输入样例#1:
yyy loves OI : @yyy loves Physics wo pei fu ni de chu ti xiao lv yyy loves Maths : @yyy loves Physics wo pei fu ni de chu ti xiao lv yyy loves Chemistry : @yyy loves Physics wo pei fu ni de chu ti xiao lv yyy loves Microelectronic : ni men wu liao me yyy loves OI : @yyy loves Physics wo pei fu ni de chu ti xiao lv
输出样例#1:
Unsuccessful @yyy loves Physics attempt 4 yyy loves Microelectronic
输入样例#2:
yyy loves OI : @yyy loves Physics wo pei fu ni de chu ti xiao lv yyy loves Maths : @yyy loves Physics wo pei fu ni de chu ti xiao lv yyy loves Chemistry : @yyy loves Physics wo pei fu ni de chu ti xiao lv yyy loves OI : @yyy loves Physics wo pei fu ni de chu ti xiao lv yyy loves Maths : @yyy loves Physics wo pei fu ni de chu ti xiao lv yyy loves Chemistry : @yyy loves Physics wo pei fu ni de chu ti xiao lv yyy loves OI : @yyy loves Physics wo pei fu ni de chu ti xiao lv yyy loves Maths : @yyy loves Physics wo pei fu ni de chu ti xiao lv yyy loves Chemistry : @yyy loves Physics wo pei fu ni de chu ti xiao lv yyy loves Physics : ni men gou le
输出样例#2:
Successful @yyy loves Physics attempt
说明
@yyy loves Physics 我佩服你的出题效率
此题仅吐槽soha,纪念出题者的队形,此队形长达91行。
对于100%的数据,每行消息长度<=1000
保证行数不超过50000
保证输入文件大小不超过4M
保证第一个说话的一定在艾特某人
保证大家的名字都是yyy loves ____ 的格式
保证每个人说的话中没有":"
保证第一个说话的一定艾特了一个人且只@了一个人
保证第一个说话的一定不会艾特自己
保证文件结束一定有一行空行 方便你判定文件结束
并不保证后面说话的艾特了几个人 然而艾特人数不为一个人视为破坏队形
并不保证后面说话是否会反复艾特同一个人
并不保证被炸的人一定破坏队形
并不保证这一题是或不是压轴题
并不保证这一套比赛存在压轴题
并不保证下一套比赛和这一套比赛一样水
并不保证群里除了这4个人和kkksc以外没有别人了
并不保证你没AC这题的情况下吐槽soha不会出事儿
AC了可以吐槽soha一句,soha不会介意。
思路
即使你没有保证然而我还是要吐槽,太恶心了这个题,字符串处理的题即使思路清晰,到最后也会被什么空格和各式各样的字符串函数搞得头昏脑涨。这道题我最高可以调到60分,但是我已经考虑到了所有题目描述中可能会有的情况,不管了,贴出源码,有神犇路过还请指教。
var i,j,sum,x,a,n:longint;s,juzi,id,iid,s1,ss,xx:ansistring;procedure success; beginwriteln('Successful @',id,' attempt');halt; end; //at successfullyprocedure ending; beginwriteln('Unsuccessful @',id,' attempt');writeln(sum-1);writeln('Good Queue Shape');halt; end; //to the endprocedure prime; beginwriteln('Unsuccessful @',id,' attempt');writeln(sum);writeln(xx);halt; end; //breakbeginreadln(s);x:=pos(':',s);delete(s,1,x+2);id:='yyy loves ';delete(s,1,10);a:=pos(' ',s);ss:=copy(s,1,a-1);id:=id+ss;n:=length(id);delete(s,1,n-9);sum:=1;while true dobegininc(sum);readln(s1);if s1='' then ending;x:=pos(':',s1);xx:=copy(s1,1,x-1);if xx=id+' ' then success;a:=pos('@',s1);if a=0 then prime;s1[a]:='*';delete(s1,1,x+2);iid:='yyy loves ';delete(s1,1,10);a:=pos(' ',s1);ss:=copy(s1,1,a-1);iid:=iid+ss;if (iid<>id) then prime;a:=pos('@',s1);if a<>0 thenbegindelete(s1,1,x+2);iid:='yyy loves ';delete(s1,1,10);a:=pos(' ',s1);ss:=copy(s1,1,a-1);iid:=iid+ss;if iid<>id then prime;end;end; end.
View Code
STD
var c,d,e:longint; //c:队形长度;d:'@'位置;e:b的长度 a,b:ansistring; //a:输入的字符串;b:@的人 begin readln(a); a:=a+' '; c:=2; d:=pos('@',a); b:='yyy loves '; e:=d+11; while a[e]<>' ' do begin //确定b b:=b+a[e]; inc(e); end; b:=b+' '; //便与判断 e:=length(b); readln(a); while a<>'' do begin //如果@的人出现就输出 if copy(a,1,e)=b then begin writeln('Successful @'+b+'attempt'); halt; end; d:=pos('@',a); if (copy(a,d+1,e)<>b) and (copy(a,d+1,e)+' '<>b) or (d=0) then begin //如果 @的不是同一个人 或 没有@人 就输出(特判'@某某某'出现在结尾且无空格的情况) writeln('Unsuccessful @'+b+'attempt'); writeln(c); writeln(copy(a,1,pos(':',a)-1)); halt; end; delete(a,d,1); //删除'@' if pos('@',a)<>0 then begin //如果还有'@'即@了不止一个人就输出 writeln('Unsuccessful @'+b+'attempt'); writeln(c); writeln(copy(a,1,pos(':',a)-1)); halt; end; readln(a); inc(c); end; writeln('Unsuccessful @'+b+'attempt'); //队形未打破但@的人未出现,输出 writeln(c-1); writeln('Good Queue Shape'); end.
View Code
转载于:https://www.cnblogs.com/yangqingli/p/4886929.html
[洛谷1580]yyy loves Easter_Egg I相关推荐
- [洛谷2397]yyy loves Maths VI
题目背景 自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居然也不会,所以只好找你 题目描述 他让redbag找众数 他还特 ...
- 洛谷——P2393 yyy loves Maths II
P2393 yyy loves Maths II 题目背景 上次蒟蒻 redbag 可把 yyy 气坏了,yyy 说他只是小学生,蒟蒻 redbag 这次不坑他了. 题目描述 redbag 给了 yy ...
- 洛谷P2397 yyy loves Maths VI (mode) 摩尔投票
求众数的一种方法 不需要内存,排序 每次记录上次加的值以及个数,相等个数+1,不相等就-1 因为众数大于一半 最坏的情况也就是拿一个众数取走一个非众数 最后的结果肯定就是众数 //#pragma co ...
- 洛谷P2396 yyy loves Maths VII【状压dp】
题目:https://www.luogu.org/problemnew/show/P2396 题意:有n个数,每次选择一个表示走$a[i]$步,每个数只能选一次. 最多有两个厄运数字,如果走到了厄运数 ...
- [P1580] yyy loves Easter_Egg I
Link: P1580 传送门 Solution: 拿来练练字符串的读入: 1.$gets()$相当于$c++$中的$getline()$,但返回值为指针!(无数据时为NULL) (都读入换行符,并将 ...
- 【Luogu1580】yyy loves Easter_Egg I(纯字符串模拟)
problem 保持队形(我们认为只要这一句内含有且恰好含有一次@,@的人和上一句话一样就算为队形) 若艾特的人与第一个人不同,就算队形被打破,油炸失败.若这个人在队形被打破之前出来吱声了,或者就是他 ...
- 洛谷 4828 Nagisa loves Tomoya 题解
博客观赏效果更佳](https://lightninguz2.github.io/2019/11/02/洛谷-4828-Nagisa-loves-Tomoya-题解/) 题意简述 给定一个序列aaa, ...
- 洛谷P4831 Scarlet loves WenHuaKe
这道题告诉我们推式子的时候头要够铁. 题意 问一个\(n\times m\)的棋盘,摆上\(n\times 2\)个中国象棋的炮使其两两不能攻击的方案数,对\(998244353\)取模. \((n\ ...
- 洛谷 4830 Tomoya loves Nagisa
博客观赏效果更佳 题意简述 某人考试,他女朋友会帮他作弊.只有一个单选题,有nnn个选项.每次,这个人会选择一个选项,他女朋友帮他排除一个他没选的错误选项.然后他一共有kkk次更换选项的机会.请你求出 ...
- 洛谷 U28036 Nagisa loves Tomoya(推式子) 题解
题目来源: https://www.luogu.org/problemnew/show/U28036 题目描述: 题目描述 可爱的古河渚得到了一个序列.她定义一次操作为 将所有的 a_iai 变为 ...
最新文章
- python中idx是什么意思_在python中滚动idxmax()?
- suse linux 10 下安装sybase15.0.3,SUSE10下安装sybase ASE15.0
- 11g oracle xe启动_详解Oracle等待事件的分类、发现及优化
- opencv运行出现错误
- 解决Eclipse Pydev中import时报错:Unresolved import
- Linux下安装DB2_v9.7详细教程
- sql server 2016新特性 查询存储(Query Store)的性能影响
- LitJson使用中的一些问题
- DNK编程 JNI 之 javah
- ubuntu16.04安装完后无法上网
- 无线渗透(下)—企业级WPA破解
- 【Mybatis学习路线】day02mybatis的增删改查操作
- android support v13,java – 程序类型已存在:android.support.v13.v...
- 小程序 function(res)与(res) =的区别
- android 调出键盘表情_Android 显示输入法中的emoji表情以及String字符
- 模态综合医疗时间序列数据:REAL-VALUED (MEDICAL) TIME SERIES GENERATION WITH RECURRENT CONDITIONAL GANS
- excel python 文字中间横杠_怎么在“excel”中的文字中间划一道横线?
- 秉火429笔记之十七 SPI--操作FLASH
- 支付宝:APP支付接口2.0(alipay.trade.app.pay)
- 隐式图的搜索问题(九宫重排)——实验准备