您的位置:首页 > 其它

HDU 3788 ZOJ问题

2016-06-22 14:19 253 查看
题目大意:略

思路:看了oj上大牛的解释才懂了,这他么的竟然是个推理题目,或者说是个高级题意,,,

zoj

用a,b,c分别代表z之前的o的个数、z和j之间的o的个数、j之后的o的个数

z和j之间必须要有o,b>0

由2和3条件推理出来a*b==c

x*1=x

若a*b==c,则a*(b+1)==a+c

推理啊,白看那么多推理小说了

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
char s[1005];
while(~scanf("%s",s))
{
int a,b,c;
for(int i=0;i<strlen(s);i++)
{
if(s[i]=='z')
a=i;//z前o的个数
if(s[i]=='j')
b=i-a-1;//z和j之间的o的个数
}
c=strlen(s)-(a+b+1+1);//j之后的o的个数
if(a==0)
{
if(b>0&&a*b==c)//满足b>0,zoj中间必须有o的啦
cout<<"Accepted"<<endl;
else
cout<<"Wrong Answer"<<endl;
}
else
{
if(b>0&&a*b==c)//
cout<<"Accepted"<<endl;
else
cout<<"Wrong Answer"<<endl;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: