HDU 3788 ZOJ问题
http://acm.hdu.edu.cn/showproblem.php?pid=3788
上HDU看到滚动条‘浙大研究生复试上机考试’最近热议的话题是考研的分数下来了。想直接找工作的我,也在犹豫的边缘,挑了了道题做了一下。
代码写的挫死了..o(╯□╰)o
1. zoj ac
2.xxxzojxxx zoj左右两边的o的数量一样多
3.azbojac 其中它是由xxzojxx一次递归而来的.假设为ozojo(a=1, b=1, c=1)递归而来的,那么一次是ozojo -->ozoojoo --> ozooojooo
可以发现numa是不变的。numb每次+1,那么变换次数为numb-1。因此要满足2.条可以推出,numc-(numb-1)*numa==numa --> numc==numa*numb;
代码如下:
#include<stdio.h> #include<string.h> int main() { char ch[1005]; int i, len, numa, numb, numc, plaz, plaj; while ( gets (ch)) { int flag=1; len= strlen (ch); plaz=-1, plaj=-1; for (i=0; i<len; i++) if (ch[i]== 'z' ) { plaz=i; break ; } for (i=0; i<len; i++) if (ch[i]== 'j' ) { plaj=i; break ; } if (plaz==-1||plaj==-1) flag=0; if (flag==0) { printf ( "Wrong Answer\n" ); continue ; } numa=0, numb=0, numc=0; for (i=0; i<plaz; i++) { if (ch[i]!= 'o' ) { flag=0; break ; } numa++; } for (i=plaz+1; i<plaj; i++) { if (ch[i]!= 'o' ) { flag=0; break ; } numb++; } for (i=plaj+1; i<len; i++) { if (ch[i]!= 'o' ) { flag=0; break ; } numc++; } if (flag==0) { printf ( "Wrong Answer\n" ); continue ; } if (plaj-plaz>1) { if (numc==numa*numb) printf ( "Accepted\n" ); else printf ( "Wrong Answer\n" ); } else printf ( "Wrong Answer\n" ); } return 0; } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步