📄 2802.cpp
字号:
#include <iostream.h>
#include <string.h>
double k[5][6],o[6][6];
int way[6][6],n,i,j,f1,f2,l,t,ii;
char d[30],s,e;
void play(int now,int floor,double oo)
{
if (floor==4)
{
o[i][now]+=oo;
way[i][now]++;
}
else
{
if (floor%2==0)
{
if (now!=5)
if (k[floor+1][now]!=0)
play(now,floor+1,oo*k[floor+1][now]);
if (now!=1)
if (k[floor+1][now]!=1)
play(now-1,floor+1,oo*(1-k[floor+1][now]));
}
else
{
if (k[floor+1][now]!=1)
play(now,floor+1,oo*(1-k[floor+1][now]));
if (k[floor+1][now]!=0)
play(now+1,floor+1,oo*k[floor+1][now]);
}
}
}
int main()
{
cin>>n;
for (ii=1;ii<=n;ii++)
{
for (i=1;i<=4;i++)
for (j=1;j<=4+(i%2);j++)
{
cin>>d;l=strlen(d)-1;
f1=0;t=0;
while (d[t]!='/')
{
f1=f1*10+(d[t]-'0');
t++;
}
t++;f2=0;
while (t<=l)
{
f2=f2*10+(d[t]-'0');
t++;
}
k[i][j]=double(f1)/f2;
}
for (i=1;i<=5;i++)
for (j=1;j<=5;j++)
{
o[i][j]=0;
way[i][j]=0;
}
for (i=1;i<=5;i++)
play(i,0,1);
cout<<"data set #"<<ii<<"\n";
for (i=1;i<=3;i++)
{
cin>>s>>e;
cout<<s<<"->"<<e<<" "<<way[s-'A'+1][e-'A'+1]<<" paths, "<<int(o[s-'A'+1][e-'A'+1]*100+0.00001)<<"% chance\n";
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -