Logo Wy Online Judge

WyOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#513#6. 「WyOJ Round 1」持 · 山海为肩KSCD_1007902ms211264kbC++231.1kb2025-05-13 21:24:442025-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