这道题其实很水。。但是英语太差了题目读不懂55555...
题目中说一开始已经转了一下打了一枪,结果没事,说明当前的点是“0”。如果直接打:有“00”和“01”两种情况,没事的概率就是“00/(00+01)”;如果先转,那么转到的点可能是0,可能是1,没事的概率就是“0/len(串长)”。比较这两个概率就可以了。另外注意它是一个环。
附上AC代码:
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<stack>
#include<queue>
using namespace std;
#define ll long long
typedef pair<int,int>pp;
#define mkp make_pair
#define pb push_back
const int INF=0x3f3f3f3f;
const ll MOD=1e9+(ll)7;
int main()
{
freopen("headshot.in","r",stdin);
freopen("headshot.out","w",stdout);
char s[105];
while(~scanf("%s",s))
{
int l=strlen(s);
int n0=0;
int n00=0,n01=0;
for(int i=0;i<l-1;i++)
{
if(s[i]=='0')
n0++;
if(s[i]=='0'&&s[i+1]=='0')
n00++;
if(s[i]=='0'&&s[i+1]=='1')
n01++;
}
if(s[l-1]=='0')
n0++;
if(s[l-1]=='0'&&s[0]=='0')
n00++;
if(s[l-1]=='0'&&s[0]=='1')
n01++;
double p1=n00*1.0/(n00+n01);
double p2=n0*1.0/l;
if(p1>p2)
printf("SHOOT\n");
else if(p1<p2)
printf("ROTATE\n");
else
printf("EQUAL\n");
}
return 0;
}