QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#240716#3247. 挑战Cofe_Milk#WA 1ms5916kbC++171.3kb2023-11-05 17:51:332023-11-05 17:51:34

Judging History

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

  • [2023-11-05 17:51:34]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:5916kb
  • [2023-11-05 17:51:33]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
typedef long double ld;
typedef long long ll;
//#define int ll
#define endl '\n'
#define fi first
#define se second
#define pii pair<int, int>
#define rep(i,a,n,k) for(int i=a;i<=n;i+=k)
#define per(i,a,n,k) for(int i=a;i>=n;i-=k)
/*·········································*/
const int N = 1e5 + 10;
int n, m;
ld dp[N][3];
ll p[N], q[N];

ld vec(ld x, ld y)
{
	if(x <= y) return (x + 1) / 2.0 / (y + 1);
	return (2 * x - y) / 2.0 / ld(n);
}

ld deu(ld x, ld y)
{
	return min(x, y) / ld(n) / ld(m + 1);
}

ld fai(ld x, ld y)
{
	return 1 - vec(x, y) - deu(x, y);
}

void solve()
{
	cin >> n;
	rep(i,0,n-1,1) cin >> p[i];
	rep(i,0,n-1,1) cin >> q[i];
	per(i,n-1,0,1) rep(j,1,min(p[i],(ll)n-i),1)
	{
		dp[i][1] = max(dp[i][1], 1 - dp[i + j][0]);
		dp[i][2] = max(dp[i][2], dp[i + j][0]);
		if(j != p[i])
			dp[i][0] = max({dp[i][0], dp[i][1], dp[i + j][1] * vec(p[i] - j, q[i] + q[i + j]) + (1 - dp[i + j][0]) * deu(p[i] - j, q[i] + q[i + j]) + (1 - dp[i + j][2]) * fai(p[i] - j, q[i] + q[i + j])});
		else dp[i][0] = max(dp[i][0], dp[i][1]);
	}
	cout << fixed << setprecision(10) << dp[0][0];
}

signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	int t = 1;
	//cin>>t;
	while(t--) solve();
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 1ms
memory: 5916kb

input:

1000
5 1 33 33 35 2 28 10 2 24 12 19 30 32 3 23 27 3 35 15 13 24 27 13 5 25 3 27 16 18 35 17 11 6 22 1 30 12 11 25 12 17 15 6 17 5 4 25 5 26 2 23 7 18 21 18 31 24 1 15 29 15 16 33 28 23 24 12 13 26 25 28 2 9 27 2 25 16 27 5 20 17 4 4 35 17 17 24 2 27 35 28 3 15 33 33 7 9 6 2 9 34 29 10 27 15 16 32 2...

output:

0.9250567315

result:

wrong answer 1st numbers differ - expected: '0.9251428', found: '0.9250567', error = '0.0000861'