⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2802.cpp

📁 这些是我到目前在PKU上做出的题目
💻 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 + -