Submission #2453727
Source Code Expand
#include<algorithm> #include<iostream> #include<sstream> #include<vector> #include<cmath> using namespace std; typedef long long lint; typedef vector<int>vi; typedef pair<int,int>pii; #define rep(i,n)for(int i=0;i<(int)(n);++i) const int DEBUG = 0; double dp[31][31]; int main(){ int n; cin>>n; string pq; cin>>pq; stringstream ss(pq); double p; { int u,v; ss>>u; ss.ignore(); ss>>v; p=(double)u/(double)v; } vector<vi>a(n,vi(n)); rep(i,n)rep(j,n)cin>>a[i][j]; vector<pii>has(n); rep(i,n){ int t=0; rep(j,n)t+=a[i][j]; has[i]=pii(-t,i); } sort(has.begin(),has.end()); dp[0][n-1]=1; rep(i,n){ int u=i==0?-1:has[i-1].second,v=has[i].second; vector<double> trans(n); int bc=0; rep(j,n)bc+=a[v][j]; rep(j,bc+1){ rep(k,n-bc){ double tmp=pow(p,j+n-1-bc-k)*pow(1-p,bc-j+k); rep(l,j)tmp=tmp*(bc-l)/(l+1); rep(l,k)tmp=tmp*(n-1-bc-l)/(l+1); trans[j+k]+=tmp; } } if(DEBUG){ cerr<<"trans["<<v<<"]:"; rep(j,n)cerr<<" "<<trans[j]; cerr<<endl; } rep(j,n)rep(k,n) if(j<k||(u<=v&&j==k))dp[i+1][j]+=trans[j]*dp[i][k]; } double ans=0; rep(i,n)ans+=dp[n][i]; printf("%.15f\n",ans); }
Submission Info
Submission Time | |
---|---|
Task | C - 天下一プログラマーコンテスト1999 |
User | kirika_comp |
Language | C++14 (GCC 5.4.1) |
Score | 600 |
Code Size | 1279 Byte |
Status | AC |
Exec Time | 3 ms |
Memory | 384 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 600 / 600 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | 00_sample_01, 00_sample_02, 00_sample_03, 00_sample_04, 02_manual_01, 02_manual_02, 02_manual_03, 02_manual_04, 02_manual_05, 02_manual_06, 02_manual_07, 02_manual_08, 02_manual_09, 02_manual_10, 02_manual_11, 02_manual_12, 20_random_00, 20_random_01, 20_random_02, 20_random_03, 20_random_04, 20_random_05, 20_random_06, 20_random_07, 20_random_08, 20_random_09, 20_random_10, 20_random_11, 20_random_12, 20_random_13, 20_random_14, 20_random_15, 20_random_16, 20_random_17, 20_random_18, 20_random_19, 30_manual_13, 30_manual_14, 30_manual_15, 30_manual_16, 30_manual_17, 30_manual_18, 30_manual_19 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_01 | AC | 3 ms | 384 KB |
00_sample_02 | AC | 1 ms | 256 KB |
00_sample_03 | AC | 1 ms | 256 KB |
00_sample_04 | AC | 1 ms | 384 KB |
02_manual_01 | AC | 1 ms | 256 KB |
02_manual_02 | AC | 1 ms | 256 KB |
02_manual_03 | AC | 1 ms | 256 KB |
02_manual_04 | AC | 1 ms | 256 KB |
02_manual_05 | AC | 1 ms | 256 KB |
02_manual_06 | AC | 1 ms | 256 KB |
02_manual_07 | AC | 1 ms | 256 KB |
02_manual_08 | AC | 1 ms | 256 KB |
02_manual_09 | AC | 1 ms | 256 KB |
02_manual_10 | AC | 1 ms | 256 KB |
02_manual_11 | AC | 1 ms | 256 KB |
02_manual_12 | AC | 1 ms | 256 KB |
20_random_00 | AC | 2 ms | 256 KB |
20_random_01 | AC | 2 ms | 256 KB |
20_random_02 | AC | 1 ms | 256 KB |
20_random_03 | AC | 1 ms | 256 KB |
20_random_04 | AC | 2 ms | 256 KB |
20_random_05 | AC | 1 ms | 256 KB |
20_random_06 | AC | 1 ms | 256 KB |
20_random_07 | AC | 1 ms | 256 KB |
20_random_08 | AC | 1 ms | 256 KB |
20_random_09 | AC | 2 ms | 256 KB |
20_random_10 | AC | 2 ms | 256 KB |
20_random_11 | AC | 1 ms | 256 KB |
20_random_12 | AC | 1 ms | 256 KB |
20_random_13 | AC | 1 ms | 256 KB |
20_random_14 | AC | 1 ms | 256 KB |
20_random_15 | AC | 1 ms | 256 KB |
20_random_16 | AC | 1 ms | 256 KB |
20_random_17 | AC | 1 ms | 256 KB |
20_random_18 | AC | 1 ms | 256 KB |
20_random_19 | AC | 2 ms | 256 KB |
30_manual_13 | AC | 3 ms | 256 KB |
30_manual_14 | AC | 3 ms | 256 KB |
30_manual_15 | AC | 2 ms | 256 KB |
30_manual_16 | AC | 3 ms | 256 KB |
30_manual_17 | AC | 2 ms | 256 KB |
30_manual_18 | AC | 3 ms | 256 KB |
30_manual_19 | AC | 3 ms | 256 KB |