結果
| 問題 |
No.66 輝け☆全国たこやき杯
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-05-03 09:15:09 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 951 bytes |
| コンパイル時間 | 5,291 ms |
| コンパイル使用メモリ | 252,596 KB |
| 最終ジャッジ日時 | 2025-01-29 02:01:43 |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 4 WA * 5 RE * 1 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
#include<atcoder/all>
using namespace atcoder;
using ll = long long;
int m;
vector<int> s;
double dp[10][1<<10];
using P = pair<int,int>;
void solve(){
vector<P> vpii(1<<m);
for(int i = 0;i < (1<<m);i++){
vpii[i] = P(s[i],i);
}
for(int i =0;i<(1<<m);i++)dp[0][i] = 1;
for(int i = 0;i<m;i++){
for(int j = 0;j<(1<<m);j++){
for(int k = 0;k<(1<<k);k++){
if(vpii[j].second%2){
if(vpii[j].second-1==vpii[k].second){
dp[i+1][j] += dp[i][j]*dp[i][k]*(double(s[j]*s[j])/(s[j]*s[j]+s[k]*s[k]));
}
}else{
if(vpii[j].second+1==vpii[k].second){
dp[i+1][j] += dp[i][j]*dp[i][k]*(double(s[j]*s[j])/(s[j]*s[j]+s[k]*s[k]));
}
}
}
}
for(int j = 0;j<(1<<m);j++){
vpii[j].second/=2;
}
}
printf("%.10lf\n",dp[m][0]);
}
signed main(){
cin.tie(nullptr);
ios::sync_with_stdio(false);
cin >> m;
s = vector<int>(1<<m);
for(auto &i:s)cin >> i;
solve();
}