zoukankan      html  css  js  c++  java
  • 【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;
    }
  • 相关阅读:
    STL与基础数据结构
    solr基础总结
    linux命令笔记
    SolrCloud集群部署
    oracle SQL笔记
    内存溢出之Tomcat内存配置
    solr查询优化(实践了一下效果比较明显)
    JAVA处理线程超时
    Solr 数据导入 <一>DIH简单使用
    几种防止表单重复提交的方法
  • 原文地址:https://www.cnblogs.com/CQzhangyu/p/7391321.html
Copyright © 2011-2022 走看看