HDU 6595. Everything Is Generated In Equal Probability (期望+逆元)
题目: http://acm.hdu.edu.cn/showproblem.php?pid=6595
分析:
设f(n)=Calculate(Array)×Probability[Calculate(Array)],其中|Array|=n;
即f(n)=E[Calculate(Array)],其中|Array|=n;
则ans=[ ∑f(n) ] / N,n<=N;
考虑f(n)如何求:
考虑一对逆序对对答案产生的贡献!
从n个数中选则两个数:C(n,2)
较小的数排在前面的概率:1/2
在第i层子序列中对答案产生贡献的概率:(1/4)^i ,即这两个数出现在第i层子序列中的概率
举个栗子,比如这两个数出现在原数列中的概率为(1/4)^0=1,
出现在第一层子序列中的概率为(1/2×1/2)^1=1/4,其中1/2为每个数出现在子序列中的概率。
综上,f(n)=C(n,2)×1/2×∑[(1/4)^i],其中i∈[0,∞];
=n*(n-1)/3
ans=[ ∑f(n) ] / N,n<=N。
注意逆元用费马小定理处理一下即可。
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long llong;
const int tmax=3005;
const llong mod=998244353;
llong f[tmax],three,rev[tmax];
llong quick(llong base)
{llong ans=1,k=mod-2;while(k){if(k&1) ans=(ans*base)%mod;base=(base*base)%mod;k>>=1;}return ans;
}
void init()
{int i;three=quick(3ll);for(i=1;i<=3000;i++){f[i]=(1ll*i*(i-1))%mod*three%mod;rev[i]=quick(1ll*i);}return;
}
int main()
{init();//test();int N;while(scanf("%d",&N)==1){llong ans=0;for(int i=1;i<=N;i++)ans=(ans+f[i])%mod;ans=ans*rev[N]%mod;cout<<ans<<endl;}return 0;
}
HDU 6595. Everything Is Generated In Equal Probability (期望+逆元)相关推荐
- HDU 6595 Everything Is Generated In Equal Probability (期望dp,线性推导)
Everything Is Generated In Equal Probability \[ Time Limit: 1000 ms\quad Memory Limit: 131072 kB \] ...
- HDU 6595 Everything Is Generated In Equal Probability(概率+组合数)
题面 One day, Y_UME got an integer NN and an interesting program which is shown below: Y_UME wants to ...
- hdu6595 Everything Is Generated In Equal Probability 数学期望
链接 Everything Is Generated In Equal Probability 题意 ①给个N(1≤N≤3000),在1~N中等概率取一个数n ②随机产生一个1~n的排列,记录逆序对个 ...
- Everything Is Generated In Equal Probability(HDU - 6595,概率期望)
一.题目链接: HDU-6595 二.题目大意: 题目给定一个正整数N. 在区间[1, N]中随机等概率地选取一个正整数n,然后随机等概率地生成一个长度为n的排列A,然后调用函数 CALCULATE( ...
- Everything Is Generated In Equal Probability HDU 6595(期望dp)
大致题意 好像是给一个数字n,然后随机选择一个1到n的数字,对其排列进行这样一种运算.首先res加上当前排列的逆序对数,然后再随机选择当前数列的子序列,继续进行该运算直到子序列长度为0.求res的期望 ...
- 2019 杭电多校 E - Everything Is Generated In Equal Probability HDU 6595 数学
给了你一个程序 程序 S1 将传入的 数组 返回一个随机子序列(不一定连续) 程序 S2 算这个数组 逆序对数量 程序 S3 算这个数组 经过S1 之后 用S2算逆序对数量 到这里 我们知道了 这个程 ...
- 【题目】HDU P6595(C849E)Everything Is Generated In Equal Probability
题目大意 给出一个整数NNN和一段程序(包括三个函数): SUBSEQUENCE(Array)\text{SUBSEQUENCE(}Array\text)SUBSEQUENCE(Array):随机返回 ...
- hdu多校第二场 1005 (hdu6595) Everything Is Generated In Equal Probability
题意: 给定一个N,随机从[1,N]里产生一个n,然后随机产生一个n个数的全排列,求出n的逆序数对的数量,加到cnt里,然后随机地取出这个全排列中的一个非连续子序列(注意这个子序列可以是原序列),再求 ...
- Everything Is Generated In Equal Probability HDU-6595 期望DP
Solution dp[n]=E+∑i=0n−1Cnidp[i]+dp[n]2ndp[n]=E+\frac{\sum\limits_{i=0}^{n-1}C_n^idp[i]+dp[n]}{2^n}d ...
最新文章
- MySQL基础之select基本查询
- Clojure语法学习-循环
- ArcGIS 10.2晕渲图+旋转图制作
- MySQL 快速定位性能问题
- Androidの网络Http之判断是否连接服务器
- 宾夕法尼亚在线计算机硕士,申请访谈:宾夕法尼亚大学(Upenn)计算机科学(CS)的录取攻略...
- [转载] python中import问题
- filename.whl is not supported wheel on this platform 部分第三方库无法安装的解决办法
- python微信群管理开禁言_微信群群主可不可以设置禁言?群主设置禁言别人方法...
- Java-输出100以内的质数
- w10计算机网络标志不见了怎么办,Win10系统网络图标不见了怎么办?
- 访问yy直播页面点击播放无响应分析
- VMware Workstation 英文改中文界面
- 【统计学】用Stata做时间序列分析
- FINN(三)BNN在FPGA上的准确性和峰值性能
- 图片转PDF格式怎么转换?这三种方法随便用
- 三星堆的青铜机器人_三星堆出土世界同期最高、最完整的青铜立人像 他有两个未解之谜...
- 码农的自我修养 - 指令集架构种类
- TongWeb及应用系统安全加固
- 前端例程20210802:玻璃拟物化风格(Glassmorphism)设计与实现