ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#513 | #6. 「WyOJ Round 1」持 · 山海为肩 | KSCD_ | 100 | 7902ms | 211264kb | C++23 | 1.1kb | 2025-05-13 21:24:44 | 2025-05-15 09:17:05 |
answer
#include<iostream>
#include<cstdio>
#define ld double
using namespace std;
const int N=531441+10;
const int K=25;
const ld eps=1e-8;
int n,m,po[K],res,a[K]; ld rp=-1,f[2][N][K];
void print(int S)
{
for(int i=0;i<m;i++) a[i]=S%3,S/=3;
for(int i=m-1;~i;i--) printf(a[i]?(a[i]-1?"scissors ":"paper "):"rock ");
}
signed main()
{
scanf("%d%d",&n,&m),po[0]=1;
for(int i=1;i<=m;i++) po[i]=po[i-1]*3;
for(int i=1;i<=n;i++)
{
ld p; int x=0; scanf("%lf",&p);
for(int j=0;j<m;j++)
{
char s[K]; scanf("%s",s);
x=(x*3+(s[0]=='r'?0:(s[0]=='p'?1:2)));
}
f[0][x][m]+=p;
}
for(int i=0;i<m;i++)
{
int last=(i&1),now=1-last;
for(int S=0;S<po[m];S++) for(int k=-(i+1);k<=i+1;k++) f[now][S][k+m]=0;
for(int S=0;S<po[m];S++) for(int k=-i;k<=i;k++) if(f[last][S][k+m])
{
ld tf=f[last][S][k+m]; int x=S/po[i]%3;
f[now][S][k+m]+=tf;
f[now][S-x*po[i]+(x+1)%3*po[i]][k+1+m]+=tf;
f[now][S-x*po[i]+(x+2)%3*po[i]][k-1+m]+=tf;
}
}
for(int S=0;S<po[m];S++)
{
ld p=0;
for(int i=0;i<=m;i++) p+=f[m%2][S][i+m];
if(p-rp>eps) res=S,rp=p;
}
printf("%.6lf\n",rp),print(res);
return 0;
}
这程序好像有点Bug,我给组数据试试?
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 10
Accepted
time: 6ms
memory: 5632kb
input:
841 5 0.002262 paper rock rock scissors scissors 0.000665 rock paper paper scissors paper 0.001132 s...
output:
0.689135 paper paper rock rock paper
result:
ok 6 tokens
Test #2:
score: 10
Accepted
time: 0ms
memory: 5468kb
input:
320 1 0.001734 rock 0.000432 rock 0.003306 scissors 0.000322 paper 0.000380 rock 0.000817 scissors 0...
output:
0.728099 rock
result:
ok 2 tokens
Test #3:
score: 10
Accepted
time: 0ms
memory: 5600kb
input:
19 2 0.086520 scissors rock 0.028985 rock rock 0.056406 rock scissors 0.010732 scissors rock 0.04471...
output:
0.836348 scissors rock
result:
ok 3 tokens
Test #4:
score: 10
Accepted
time: 1652ms
memory: 211000kb
input:
100000 12 0.000008 rock rock rock scissors paper scissors paper paper paper scissors paper scissors ...
output:
0.578764 rock rock paper paper paper paper scissors paper scissors rock paper rock
result:
ok 13 tokens
Test #5:
score: 10
Accepted
time: 579ms
memory: 75132kb
input:
82918 11 0.000009 paper rock rock scissors scissors paper rock paper rock rock paper 0.000000 scisso...
output:
0.582727 paper rock paper paper paper scissors rock paper scissors scissors rock
result:
ok 12 tokens
Test #6:
score: 10
Accepted
time: 241ms
memory: 29536kb
input:
63157 10 0.000004 rock scissors paper scissors paper scissors rock paper rock scissors 0.000007 rock...
output:
0.587712 rock scissors rock paper rock rock rock paper rock paper
result:
ok 11 tokens
Test #7:
score: 10
Accepted
time: 1690ms
memory: 211260kb
input:
100000 12 0.000003 rock rock rock paper paper rock paper paper paper rock rock scissors 0.000001 pap...
output:
0.578665 paper rock scissors scissors rock paper scissors rock scissors scissors rock paper
result:
ok 13 tokens
Test #8:
score: 10
Accepted
time: 572ms
memory: 75012kb
input:
72055 11 0.000006 rock scissors scissors rock scissors scissors scissors scissors rock scissors scis...
output:
0.584229 paper rock paper rock rock rock paper scissors scissors rock scissors
result:
ok 12 tokens
Test #9:
score: 10
Accepted
time: 1490ms
memory: 211264kb
input:
49463 12 0.000024 rock paper scissors paper rock scissors rock paper paper paper paper paper 0.00000...
output:
0.584658 rock paper scissors scissors paper scissors rock rock paper scissors rock paper
result:
ok 13 tokens
Test #10:
score: 10
Accepted
time: 1672ms
memory: 211012kb
input:
100000 12 0.000007 rock paper scissors paper paper scissors rock rock scissors rock scissors paper 0...
output:
0.578092 rock scissors paper scissors paper paper paper rock rock paper paper rock
result:
ok 13 tokens
Extra Test:
score: 0
Extra Test Passed