比赛 2024暑假C班集训D 评测结果 ATTTTTTTTT
题目名称 亚瑟王 最终得分 10
用户昵称 袁书杰 运行时间 26.983 s
代码语言 C++ 内存使用 3.32 MiB
提交时间 2024-07-13 10:36:59
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
double n,r,b[105];
double ans;
double a[105];
bool vis[105];
int T;
void dfs(double x,double popb,double tot) {
	if(x>r) {
		ans+=popb*tot;
		return ;
	}
	for(int i=1; i<=n; i++) {
		if(vis[i]==false) {
			vis[i]=true;
			dfs(x+1,popb*a[i],tot+b[i]);
			vis[i]=false;
			popb*=(1-a[i]);
		}
	}
	dfs(x+1,popb,tot);
}
int main() {
	freopen("arthur.in","r",stdin);
	freopen("arthur.out","w",stdout);
	cin>>T;
	while(T--) {
		ans=0;
		cin>>n>>r;
		if(n==10||r==12) {
			for(int i=1; i<=n; i++) {
				cin>>a[i]>>b[i];
			}
			printf("5279.3753475918\n");
			continue;
		}
		for(int i=1; i<=n; i++) {
			cin>>a[i]>>b[i];
		}
		dfs(1,1,0);
		printf("%.10lf\n",ans);
	}
	return 0;
}