QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#208879#3994. Easy JumpISYRHHWA 0ms1684kbC++141.8kb2023-10-09 21:41:562023-10-09 21:41:56

Judging History

你现在查看的是最新测评结果

  • [2023-10-09 21:41:56]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:1684kb
  • [2023-10-09 21:41:56]
  • 提交

answer

#include<cstdio>
using namespace std;
double p[1010],dp0[1010][10],p0[1010][10],dp1[1010][10],p1[1010][10],dp2[1010],p2[1010];
int n,h,s,m,in,t1,t2;
bool vis[1010];
int main()
{
	scanf("%d%d%d",&n,&h,&s);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&in);
		p[i]=in/100.0;
	}
	scanf("%d",&m);
	for(int i=1;i<=m;i++)
	{
		scanf("%d",&in);
		vis[in]=true;
	}
	scanf("%d%d",&t1,&t2);
	if(t1>t2)t1=t2;
	p0[1][h]=1;
	for(int i=1;i<=n;i++)
	{
		for(int j=h;j>=2;j--)
		{
			dp0[i+1][j]+=(dp0[i][j]+p0[i][j])*p[i];
			p0[i+1][j]+=p0[i][j]*p[i];
			p0[i][j-1]+=p0[i][j]*(1-p[i]);
			dp0[i][j-1]+=(dp0[i][j]+p0[i][j])*(1-p[i]);
		}
		if(s>1)
		{
			dp1[i][s-1]+=dp0[i][1]+p0[i][1]*t1;
			p1[i][s-1]+=p0[i][1];
		}
		else if(s)
		{
			dp2[i]+=dp0[i][1]+p0[i][1]*t1;
			p2[i]+=p0[i][1];
		}
		else
		{
			dp2[i]+=dp0[i][1]+p0[i][1]*t2;
			p2[i]+=p0[i][1];
		}
		if(vis[i])
		{
			double tp=0,td=0;
			for(int j=s;j;j--)
			{
				tp+=p1[i][j];
				td+=dp1[i][j];
			}
			tp+=p2[i];td+=dp2[i];
			if(s)
			{
				dp1[i+1][s]+=tp*((t1+1)/p[i]*(1-p[i])+1)+td;
				p1[i+1][s]+=tp;
			}
			else
			{
				dp2[i+1]+=tp*((t1+1)/p[i]*(1-p[i])+1)+td;
				p2[i+1]+=tp;
			}
		}
		else
		{
			for(int j=s;j>1;j--)
			{
				dp1[i+1][j-1]+=(dp1[i][j]+p1[i][j])*p[i];
				p1[i+1][j-1]+=p1[i][j]*p[i];
				dp1[i][j-1]+=(dp1[i][j]+p1[i][j]*(t1+1))*(1-p[i]);
				p1[i][j-1]+=p1[i][j]*(1-p[i]);
			}
			dp2[i+1]+=(dp1[i][1]+p1[i][1])*p[i];
			p2[i+1]+=p1[i][1]*p[i];
			dp2[i]+=(dp1[i][1]+p1[i][1]*(t1+1))*(1-p[i]);
			p2[i]+=p1[i][1]*(1-p[i]);
			dp2[i+1]+=dp2[i]+p2[i]*(1+(1-p[i])*(t2+1)/p[i]);
			p2[i+1]+=p2[i];
		}
	}
	double res=0;
	for(int j=h;j>=2;j--)
	{
		res+=dp0[n+1][j];
	}
	for(int j=s;j;j--)
	{
		res+=dp1[n+1][j];
	}
	res+=dp2[n+1];
	printf("%.10f",res);
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 1672kb

input:

1 2 0
50
0
1 2

output:

4.0000000000

result:

ok found '4.0000000', expected '4.0000000', error '0.0000000'

Test #2:

score: 0
Accepted
time: 0ms
memory: 1664kb

input:

2 3 1
50 50
1 1
1 3

output:

6.0000000000

result:

ok found '6.0000000', expected '6.0000000', error '0.0000000'

Test #3:

score: 0
Accepted
time: 0ms
memory: 1636kb

input:

1 6 4
75
0
64 6

output:

1.3411458333

result:

ok found '1.3411458', expected '1.3411458', error '0.0000000'

Test #4:

score: 0
Accepted
time: 0ms
memory: 1684kb

input:

1 5 1
61
1 1
15 43

output:

2.2082231967

result:

ok found '2.2082232', expected '2.2082232', error '0.0000000'

Test #5:

score: 0
Accepted
time: 0ms
memory: 1620kb

input:

10 9 3
12 65 76 33 17 20 89 16 4 63
3 2 4 8
73 21

output:

942.4148420128

result:

ok found '942.4148420', expected '942.4148420', error '0.0000000'

Test #6:

score: 0
Accepted
time: 0ms
memory: 1624kb

input:

10 6 0
26 6 29 76 92 46 8 4 91 44
1 4
17 6

output:

401.8668629820

result:

ok found '401.8668630', expected '401.8668630', error '0.0000000'

Test #7:

score: -100
Wrong Answer
time: 0ms
memory: 1640kb

input:

100 3 5
85 59 20 75 58 42 79 95 22 15 95 81 69 73 45 42 99 93 58 8 18 34 88 14 23 37 87 16 96 17 40 58 32 26 93 9 37 15 68 49 99 73 48 79 16 27 52 4 66 53 48 55 27 56 52 66 25 30 34 11 97 20 38 30 4 78 17 98 4 23 30 71 87 94 89 71 45 92 72 24 90 24 78 48 62 82 30 30 27 55 64 66 41 72 53 97 59 38 80 ...

output:

13851.0570108740

result:

wrong answer 1st numbers differ - expected: '13395.8550625', found: '13851.0570109', error = '0.0339808'