• 【BZOJ2698】染色 期望


    【BZOJ2698】染色

    Description

    Input

    输入一行四个整数,分别为N、M、S和T。

    Output

      输出一行为期望值,保留3位小数。

    输入 输出 解释
    5 1 2 3 2.429 染色一次共有7种等概率方案(题目描述中提到),其中染2个格子有4种,染3个格子有3种,期望值为2*4/7+3*3/7=2.429。

    数据范围
           1 ≤ S ≤ T ≤ N ≤ 1000000,0 ≤ M ≤ 1000000

    题解:由于概率可加,所以我们只需要考虑每个位置被染色的概率即可。由于正着求不太容易,我们可以求每个位置不被染色的概率。具体做法:维护个前缀和乱搞即可。

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    using namespace std;
    typedef long long ll;
    typedef long double ld;
    ll n,m,l,r,tot;
    ld ans;
    ll s[1000010];
    ld pm(ld x,ll y)
    {
    	ld z=1.0;
    	while(y)
    	{
    		if(y&1)	z=z*x;
    		x=x*x,y>>=1;
    	}
    	return z;
    }
    int main()
    {
    	scanf("%lld%lld%lld%lld",&n,&m,&l,&r);
    	tot=(n-l+1+n-r+1)*(r-l+1)/2,ans=n;
    	ll i;
    	for(i=l;i<=n;i++)	s[i]=s[i-1]+min(r-l+1,i-l+1);
    	for(i=1;i<=n;i++)	ans-=pm((ld)(s[i-1]+s[n-i])/tot,m);
    	printf("%.3lf",(double)ans);
    	return 0;
    }
  • 相关阅读:
    习题三 答案
    习题二 答案
    Python开发【第三篇】:Python基本数据类型
    习题四 答案
    第一个python程序-判断登陆用户名和密码是否正确
    BFPRT算法 查找第k小的数
    设计模式----单例模式
    设计模式----原型模式
    非本地跳转
    链接器如何使用静态库解析引用
  • 原文地址:https://www.cnblogs.com/CQzhangyu/p/7391321.html
Copyright © 2020-2023  润新知