当前位置: 代码迷 >> 综合 >> DFS csu1513 Kick the ball!
  详细解决方案

DFS csu1513 Kick the ball!

热度:61   发布时间:2023-12-14 03:53:40.0

传送门:点击打开链接

题意:点球大战,轮流每队点射5个球,A先踢。如果当前比分已经能直接让比赛胜利接下来的球就不需要踢了。问最后的得分是题所给出的得分的概率

思路:暴力DFS,直接枚举哪些球进了哪些球没进,注意比赛提前结束这个特殊的剪枝就行。

#include<map>
#include<set>
#include<cmath>
#include<stack>
#include<queue>
#include<cstdio>
#include<string>
#include<vector>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<functional>
#define FIN freopen("input.txt","r",stdin)using namespace std;
typedef long long LL;
typedef pair<int, int> PII;const int MX = 100 + 5;int Ga, Gb;
double P[MX][2], ans;void DFS(double p, int a, int b, int A, int B, int turn) {if(A > 5 || B > 5 || a > Ga || b > Gb) return;bool sign = false;if(5 - A +