Submission #1232644
Source Code Expand
#include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> #include <iomanip> #include <unordered_map> #include <unordered_set> #include <map> #include <set> using namespace std; vector<double> r; double pwin(int i,int j){ return 1.0/(1.0+pow(10.0,(r[j]-r[i])/400.0)); } long long M=1000000007; int main(int argc, char const *argv[]) { int K;cin>>K; r=vector<double>(1<<K); for(int i=0;i<1<<K;++i)cin>>r[i]; vector<double> dp(1<<K,1.0); for(int i=0;i<K;++i){ int k=1<<i; vector<double> dp1(1<<K,0.0); for(int j=0;j<1<<K;j+=1<<(i+1)){ for(int p=0;p<k;p++){ for(int q=0;q<k;q++){ dp1[j+p]+=pwin(j+p,j+k+q)*dp[j+k+q]; dp1[j+p+k]+=pwin(j+p+k,j+q)*dp[j+q]; } } } for(int j=0;j<1<<K;++j)dp[j]*=dp1[j]; } for(int i=0;i<1<<K;++i)cout<<setprecision(20)<<dp[i]<<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - トーナメント |
User | pillow97 |
Language | C++14 (GCC 5.4.1) |
Score | 4 |
Code Size | 932 Byte |
Status | AC |
Exec Time | 80 ms |
Memory | 384 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 4 / 4 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | 00, 01, 02, 03, 90, 91 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00 | AC | 80 ms | 384 KB |
01 | AC | 78 ms | 256 KB |
02 | AC | 20 ms | 256 KB |
03 | AC | 77 ms | 256 KB |
90 | AC | 1 ms | 256 KB |
91 | AC | 1 ms | 256 KB |