zoukankan      html  css  js  c++  java
  • [spojRNG]Random Number Generator

    先将所有数加上Ri,即变为区间[0,2Ri],考虑容斥,将区间容斥为[0,+oo)-[2Ri,+oo),然后对[2Ri,+oo)令$bi=ai-2Ri$,相当于范围都是[0,+oo)
    问题转化为求n个正无穷范围的数和不超过b的方案数,大胆猜测后发现就是$b^{n}/n!$,暴力累计即可

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define ld long double
     4 int t,n,x,y,a[11];
     5 ld ans;
     6 ld calc(int k){
     7     if (k<=0)return 0;
     8     ld ans=1;
     9     for(int i=1;i<=n;i++)ans=ans*k/i;
    10     return ans; 
    11 }
    12 int main(){
    13     scanf("%d",&t);
    14     while (t--){
    15         scanf("%d%d%d",&n,&x,&y);
    16         ans=0;
    17         for(int i=0;i<n;i++){
    18             scanf("%d",&a[i]);
    19             x+=a[i];
    20             y+=a[i];
    21             a[i]=a[i]*2;
    22         }
    23         for(int i=0;i<(1<<n);i++){
    24             int p=1,s=0;
    25             for(int j=0;j<n;j++)
    26                 if (i&(1<<j)){
    27                     p*=-1;
    28                     s+=a[j];
    29                 }
    30             ans+=p*(calc(y-s)-calc(x-s));
    31         }
    32         for(int i=0;i<n;i++)ans/=a[i];
    33         printf("%.9Lf
    ",ans);
    34     }
    35 }
    View Code
  • 相关阅读:
    队列与双向队列

    linux nohup, jobs, fg, tail指令 指令前后台切换
    linux shell
    Linux学习笔记四 grep, sed, awk
    面试要求
    jenkins send files or publish
    mysql导入脚本
    第三方接口调用框架
    pdm文件name与comment互相同步
  • 原文地址:https://www.cnblogs.com/PYWBKTDA/p/11725927.html
Copyright © 2011-2022 走看看