比赛 2024暑假C班集训D 评测结果 ATTTTTTTTT
题目名称 亚瑟王 最终得分 10
用户昵称 wzh0425 运行时间 26.993 s
代码语言 C++ 内存使用 3.39 MiB
提交时间 2024-07-13 09:55:57
显示代码纯文本
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int T,n,r,vis[505],d[505];
  4. double p[505],ans;
  5. void dfs(int cs,double gl,int gjl){
  6. if (cs>=r){
  7. //cout<<gl<<" "<<gjl<<endl;
  8. ans+=gl*gjl*1.0;
  9. return;
  10. }
  11. double rpl=1-gl,pl;
  12. for (int i=1;i<=n+1;i++){
  13. if (i==n+1){
  14. pl=(1-rpl)*1;
  15. rpl=rpl+pl;
  16. dfs(cs+1,pl,gjl);
  17. }else{
  18. if (vis[i]==0){
  19. pl=(1-rpl)*p[i];
  20. rpl=rpl+pl;
  21. //cout<<i<<" "<<pl<<endl;
  22. vis[i]=1;
  23. dfs(cs+1,pl,gjl+d[i]);
  24. vis[i]=0;
  25. }
  26. }
  27. }
  28. }
  29. int main(){
  30. freopen("arthur.in","r",stdin);
  31. freopen("arthur.out","w",stdout);
  32. scanf("%d",&T);
  33. while (T--){
  34. scanf("%d%d",&n,&r);
  35. for (int i=1;i<=n;i++){
  36. cin>>p[i]>>d[i];
  37. }
  38. //cout<<p[1]<<endl;
  39. dfs(0,1.0,0);
  40. printf("%.10f\n",ans);
  41. }
  42. return 0;
  43. }