結果
| 問題 |
No.174 カードゲーム(Hard)
|
| コンテスト | |
| ユーザー |
mayoko_
|
| 提出日時 | 2015-03-29 08:55:30 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 2,202 bytes |
| コンパイル時間 | 897 ms |
| コンパイル使用メモリ | 76,244 KB |
| 実行使用メモリ | 10,752 KB |
| 最終ジャッジ日時 | 2024-07-03 22:34:03 |
| 合計ジャッジ時間 | 4,322 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 2 TLE * 1 -- * 9 |
ソースコード
#include <sstream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
#include <iostream>
#include <utility>
#include <set>
#include <cctype>
#include <queue>
#include <stack>
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;
typedef long long ll;
const int MAXN = 22;
int N;
double pa, pb;
int A[MAXN], B[MAXN];
double dpa[MAXN][MAXN], dpb[MAXN][MAXN];
void dfsa(int cur, int s, double p) {
if (cur == N-1) {
for (int i = 0; i < N; i++) {
if ((s>>i)&1) {
dpa[i][cur] += p;
break;
}
}
return;
}
bool first = false;
int cnt = __builtin_popcount(s);
for (int i = 0; i < N; i++) {
if ((s>>i)&1) {
if (!first) {
dpa[i][cur] += p*pa;
first = true;
dfsa(cur+1, s^(1<<i), p*pa);
} else {
dpa[i][cur] += p*(1-pa)/(cnt-1);
dfsa(cur+1, s^(1<<i), p*(1-pa)/(cnt-1));
}
}
}
}
void dfsb(int cur, int s, double p) {
if (cur == N-1) {
for (int i = 0; i < N; i++) {
if ((s>>i)&1) {
dpb[i][cur] += p;
break;
}
}
return;
}
bool first = false;
int cnt = __builtin_popcount(s);
for (int i = 0; i < N; i++) {
if ((s>>i)&1) {
if (!first) {
dpb[i][cur] += p*pb;
first = true;
dfsb(cur+1, s^(1<<i), p*pb);
} else {
dpb[i][cur] += p*(1-pb)/(cnt-1);
dfsb(cur+1, s^(1<<i), p*(1-pb)/(cnt-1));
}
}
}
}
int main(void) {
cin >> N >> pa >> pb;
for (int i = 0; i < N; i++) cin >> A[i];
for (int i = 0; i < N; i++) cin >> B[i];
sort(A, A+N);
sort(B, B+N);
dfsa(0, (1<<N)-1, 1);
dfsb(0, (1<<N)-1, 1);
double ans = 0;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
for (int k = 0; k < N; k++) {
if (A[j] > B[k]) ans += dpa[j][i] * dpb[k][i] * (A[j]+B[k]);
}
}
}
printf("%.10lf\n", ans);
return 0;
}
mayoko_