P1297 [国家集训队] 单选错位 对期望的理解

[国家集训队] 单选错位 - 洛谷

P1297 [国家集训队] 单选错位 对期望的理解_第1张图片

思路: 

其实每个位置的得分只和前一个位置有关。

而他们俩的所有情况的期望就是答案的这部分。  ——这是难想的,我期望学的不好。

(题目给的是每种情况的所有位置的和,全加起来是答案;我们算的是这个位置的所有情况的值

然后每个位置和前一个位置的情况可以分三种:(其实就是上面大佬的题解分析)

ai == ai+1    对ai+1来说每次得分 1/ai 
ai < ai+1       对ai+1来说 (当答案落在ai内时)  ai/ai+1*(1/ai) == 1/ai+1
ai > ai+1                                                           ai+1/ai * 1/ai+1 == 1/ai
 

代码:

int a[mx];
void solve(int c)
{
	int n, A, B, C;
	// for C/C++
	scanf("%d%d%d%d%d", &n, &A, &B, &C, a + 1);
	for (int i = 2; i <= n; i++)
		a[i] = ((long long)a[i - 1] * A + B) % 100000001;
	for (int i = 1; i <= n; i++)
		a[i] = a[i] % C + 1;
	//
	
	double ans = 0;
	//n填到1
	ans += 1.0 / (double)max(a[1], a[n]);
	for (int i = 2; i <= n; i++)
	{
		ans += 1.0 / (double)max(a[i - 1], a[i]);
	}
	printf("%0.3lf", ans);
	return;
}

signed main()
{
	//ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t = 1;
	//cin >> t;
	for (int i = 1; i <= t; i++)
	{
		solve(i);
	}
	return 0;
}

踩坑:注意没有%llf这个占位符 ; %lf 和 %f

P1297 [国家集训队] 单选错位 对期望的理解_第2张图片

你可能感兴趣的:(洛谷,算法)