QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#615504#1882. DrunkardsthomaswmyWA 0ms3932kbC++141.1kb2024-10-05 19:06:042024-10-05 19:06:05

Judging History

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

  • [2024-10-05 19:06:05]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3932kb
  • [2024-10-05 19:06:04]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
const int N=5010;
const int Mod=1e9+7;
typedef long long ll;

int qpow(int x,ll y) {
	int z=1;
	for(;y;y>>=1) {
		if(y&1) z=1ll*z*x%Mod;
		x=1ll*x*x%Mod;
	}
	return z;
}

int n,p;
int a[N];
int f[N][N];

int main() {
	scanf("%d%d",&n,&p);
	p=1ll*qpow(100,Mod-2)*p%Mod;
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	for(int i=0;i<=n+1;i++) f[n+1][i]=1;
	for(int i=n;i>=1;i--) {
		f[i][n+1]=1;
		for(int j=0;j<=n;j++) {
			f[i][j]=1ll*p*f[i+1][j]%Mod;
			if(a[i]==1) {
				f[i][j]=(f[i][j]+1ll*(Mod+1-p)*f[i+1][j+1])%Mod;
			}
			else {
				if(j) f[i][j]=(f[i][j]+1ll*(Mod+1-p)*f[i+1][j-1])%Mod;
			}
		}
	}
	for(int i=n;i>=1;i--) printf("%d ",(Mod+1-f[1][i-1])%Mod);
	printf("1 ");
	for(int i=0;i<=n+1;i++) f[n+1][i]=1;
	for(int i=n;i>=1;i--) {
		f[i][n+1]=1;
		for(int j=0;j<=n;j++) {
			f[i][j]=1ll*p*f[i+1][j]%Mod;
			if(a[i]==1) {
				if(j) f[i][j]=(f[i][j]+1ll*(Mod+1-p)*f[i+1][j-1])%Mod;
			}
			else {
				f[i][j]=(f[i][j]+1ll*(Mod+1-p)*f[i+1][j+1])%Mod;
			}
		}
	}
	for(int i=1;i<=n;i++) printf("%d ",(Mod+1-f[1][i-1])%Mod);
	return 0;
}

詳細信息

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3932kb

input:

2 28
1 1

output:

0 0 1 11200001 68800001 

result:

wrong answer 1st numbers differ - expected: '702764025', found: '0'