【HDOJ6595】Everything Is Generated In Equal Probability(期望DP)
题意:给定一个N,随机从[1,N]里产生一个n,
然后随机产生一个n个数的全排列,求出n的逆序数对的数量并累加ans,
然后随机地取出这个全排列中的一个子序列,重复这个过程,直到为空,求ans在模998244353下的期望
思路:期望仅与长度有关,随手推一下式子
听说有通项公式
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef pair<ll,ll> Pll;
typedef vector<int> VI;
#define N 110000
#define M 1100000
#define fi first
#define se second
#define MP make_pair
#define pi acos(-1)
#define mem(a,b) memset(a,b,sizeof(a))
#define rep(i,a,b) for(int i=(int)a;i<=(int)b;i++)
#define per(i,a,b) for(int i=(int)a;i>=(int)b;i--)
#define lowbit(x) x&(-x)
#define Rand (rand()*(1<<16)+rand())
#define id(x) ((x)<=B?(x):m-n/(x)+1)
#define ls p<<1
#define rs p<<1|1 const ll MOD=,inv2=(MOD+)/;
double eps=1e-;
ll INF=1e14; ll fac[N],inv[N],dp[N],mi[N]; ll pw(ll x,ll y)
{
ll t=;
while(y)
{
if(y&) t=t*x%MOD;
x=x*x%MOD;
y>>=;
}
return t;
} int read()
{
int v=,f=;
char c=getchar();
while(c<||<c) {if(c=='-') f=-; c=getchar();}
while(<=c&&c<=) v=(v<<)+v+v+c-,c=getchar();
return v*f;
} ll calc(ll n)
{
ll t=n*(n-)/;
return t*inv2%MOD;
} ll c(ll n,ll m)
{
if(n<m||m<) return ;
ll t=fac[n]*inv[m]%MOD*inv[n-m]%MOD;
return t;
} int main()
{
//freopen("1.in","r",stdin);
//freopen("1.out","w",stdout);
int n;
fac[]=;
rep(i,,) fac[i]=fac[i-]*i%MOD;
inv[]=inv[]=;
rep(i,,) inv[i]=inv[MOD%i]*(MOD-MOD/i)%MOD;
rep(i,,) inv[i]=inv[i-]*inv[i]%MOD;
mi[]=;
rep(i,,) mi[i]=mi[i-]*inv2%MOD;
rep(i,,)
{
ll t=;
rep(j,,i-) t=(t+dp[j]*c(i,j)%MOD*mi[i]%MOD)%MOD;
dp[i]=(calc(i)+t)%MOD*pw(1ll-mi[i]+MOD,MOD-)%MOD;
}
rep(i,,) dp[i]=(dp[i]+dp[i-])%MOD;
inv[]=inv[]=;
rep(i,,) inv[i]=inv[MOD%i]*(MOD-MOD/i)%MOD;
while(scanf("%d",&n)!=EOF)
{
printf("%I64d\n",dp[n]*inv[n]%MOD);
}
return ;
}
【HDOJ6595】Everything Is Generated In Equal Probability(期望DP)的更多相关文章
- 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-多校2-Everything Is Generated In Equal Probability(公式+逆元)
Problem Description One day, Y_UME got an integer N and an interesting program which is shown below: ...
- hdu多校第二场 1005 (hdu6595) Everything Is Generated In Equal Probability
题意: 给定一个N,随机从[1,N]里产生一个n,然后随机产生一个n个数的全排列,求出n的逆序数对的数量,加到cnt里,然后随机地取出这个全排列中的一个非连续子序列(注意这个子序列可以是原序列),再求 ...
- [hdu6595]Everything Is Generated In Equal Probability
计算一对逆序对的贡献,即在n个数期望要删多少步才能删掉其中的两个数,设f(n)表示此时的期望,则有方程$f[n]=3/4+(\sum_{i=2}^{n}f[i]\cdot c(n-2,i-2))/2^ ...
- ACM的探索之Everything is Generated In Equal Probability! 后序补充丫!
Problem Desciption: 百度翻译后的汉化: 参见博客:https://www.cnblogs.com/zxcoder/p/11253099.html https://blog.csdn ...
- ACM的探索之Everything Is Generated In Equal Probability(这真的是很有趣的话语丫!)
---------------------------------------步履不停,奋勇前进! ------------------------难度真的是蛮大丫!后序补充!
- poj 2096 Collecting Bugs(期望 dp 概率 推导 分类讨论)
Description Ivan is fond of collecting. Unlike other people who collect post stamps, coins or other ...
- POJ 2096 Collecting Bugs 期望dp
题目链接: http://poj.org/problem?id=2096 Collecting Bugs Time Limit: 10000MSMemory Limit: 64000K 问题描述 Iv ...
- HDU 4405 Aeroplane chess 期望dp
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4405 Aeroplane chess Time Limit: 2000/1000 MS (Java/ ...
随机推荐
- 测开之路六十五:UI测试平台之js
//添加网址的函数,生成一个输入网址的标签,并且把标签append到id为cases下function browser() { var html = '\ <div class="ro ...
- grpc应用于微服务的分析,基于python
grpc应用于微服务的分析 gRPC 是一个高性能.开源和通用的 RPC 框架,面向移动和 HTTP/2 设计,目前提供 C.Java 和 Go 语言版本,分别是:grpc, grpc-java, g ...
- MongoDb python连接
方式一:简写 client = MongClient() 方式二:指定端口和地址 client = MongoClient('localhost':27017) 方式三:使用URI --统一资源定位 ...
- svg画圆环
之前我已经分享了一篇css画圆环,为啥今天还要分享一篇svg画圆环呢? 原因是:css画圆环在部分ipone手机会有bug,最大张角为90°,所以圆环会有白色的间隙. 好了,开始代码展示: html: ...
- adb常用命令-android学习第一天
转载出处:http://www.cnblogs.com/xiaoxuetu/ 转载来源:https://www.cnblogs.com/xiaoxuetu/p/3411214.html 平时开发and ...
- Java常见问题收集
转载处:https://blog.csdn.net/jackfrued/article/details/44921941 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽 ...
- 【转载】sizeof()、strlen()、length()、size()详解和区别
c/c++中获取字符串长度.有以下函数:size().sizeof() .strlen().str.length();一.数组或字符串的长度:sizeof().strlen()1.sizeof():返 ...
- Codeforces Round #574 (Div. 2) A~E Solution
A. Drinks Choosing 有 $n$ 个人,每个人各有一种最喜欢的饮料,但是买饮料的时候只能同一种的两个两个买(两个一对) 学校只打算卖 $\left \lceil \frac{n}{2} ...
- 在vue中运用mt-loadmore 实现上拉加载,下拉刷新(完整源码)
<template> <div class="serverList"> <ul class="scrollModeBox" :st ...
- break和continue能否跳出函数
int func() { printf("In func, before continue.\n"); // continue; break; printf("In fu ...