比赛 |
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;
}