题意:
给一个字符串,求小球随机放在上面进洞或到达两边之外的期望。
分析
水题,直接模拟。
代码:
//poj 3095
//sep9
#include <iostream>
using namespace std;
char a[128];
int left(int pos)
{
for(int i=pos-1;i>=0;--i)
if(a[i]=='.')
return 1;
else if(a[i]=='|'||a[i]=='/'||a[i]=='\\')
return 0;
return 1;
}
int right(int pos)
{
for(int i=pos+1;a[i]!='\0';++i)
if(a[i]=='.')
return 1;
else if(a[i]=='|'||a[i]=='/'||a[i]=='\\')
return 0;
return 1;
}
int main()
{
while(scanf("%s",a)==1){
if(a[0]=='#')
break;
int i,sum=0,len=strlen(a);
for(i=0;i<len;++i)
if(a[i]=='.')
sum+=100;
else if(a[i]=='_')
sum+=0;
else if(a[i]=='/'){
if(left(i)==1)
sum+=100;
}else if(a[i]=='\\'){
if(right(i))
sum+=100;
}else if(a[i]=='|'){
if(right(i))
sum+=50;
if(left(i))
sum+=50;
}
printf("%d\n",sum/len);
}
return 0;
}