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}dp[n]=E+2ni=0∑n−1​Cni​dp[i]+dp[n]​

E=n(n−1)4E=\frac{n(n-1)}{4}E=4n(n−1)​

dp[n]=n(n−1)4+∑i=0n−1Cnidp[i]2n1−12ndp[n]=\frac{\frac{n(n-1)}{4}+\frac{\sum\limits_{i=0}^{n-1}C_n^idp[i]}{2^n}}{1-\frac{1}{2^n}}dp[n]=1−2n1​4n(n−1)​+2ni=0∑n−1​Cni​dp[i]​​

res=∑i=0ndp[i]nres=\frac{\sum\limits_{i=0}^{n}dp[i]}{n}res=ni=0∑n​dp[i]​

Code

/*SiberianSquirrel*/
/*CuteKiloFish*/
#include <bits/stdc++.h>
using namespace std;typedef long long ll;const ll MOD = 998244353;int dp[3010] = {0, 0};
ll quick_pow(ll ans, ll p, ll res = 1) {for(; p; p >>= 1, ans = ans * ans % MOD)if(p & 1) res = res * ans % MOD;return res % MOD;
}
ll inv(ll ans) {return quick_pow(ans , MOD - 2);
}
ll inv4 = inv(4);
ll fac[3010] = {1, 1};
ll C[3010][3010];
void solve() {for(ll i = 2; i <= 3000; ++ i) {fac[i] = fac[i - 1] * i % MOD;}for(int i = 1; i <= 3000; ++ i) {C[i][0] = C[i][i] = 1;for(int j = 1; j < i; ++ j) {C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % MOD;}}for(ll i = 2; i <= 3000; ++ i) {ll res = i * (i - 1) % MOD * inv4 % MOD;ll ans = 0;for(ll j = 0; j <= i - 1; ++ j) {ans = (ans + C[i][j] * dp[j] % MOD) % MOD;}ll invn2 = inv(quick_pow(2, i));ans = ans * invn2 % MOD;ll temp = inv((1 - invn2 + MOD) % MOD);dp[i] = (res + ans) % MOD * temp % MOD;}int n; while (cin >> n) {ll res = 0;for(int i = 0; i <= n; ++ i) {res = (res + dp[i]) % MOD;}res = res * inv(n) % MOD;cout << res << endl;}
}signed main() {ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#ifdef ACM_LOCALfreopen("input", "r", stdin);freopen("output", "w", stdout);signed test_index_for_debug = 1;char acm_local_for_debug = 0;do {if (acm_local_for_debug == '$') exit(0);if (test_index_for_debug > 20)throw runtime_error("Check the stdin!!!");auto start_clock_for_debug = clock();solve();auto end_clock_for_debug = clock();cout << "Test " << test_index_for_debug << " successful" << endl;cerr << "Test " << test_index_for_debug++ << " Run Time: "<< double(end_clock_for_debug - start_clock_for_debug) / CLOCKS_PER_SEC << "s" << endl;cout << "--------------------------------------------------" << endl;} while (cin >> acm_local_for_debug && cin.putback(acm_local_for_debug));
#elsesolve();
#endifreturn 0;
}

Everything Is Generated In Equal Probability HDU-6595 期望DP相关推荐

  1. Everything Is Generated In Equal Probability HDU 6595(期望dp)

    大致题意 好像是给一个数字n,然后随机选择一个1到n的数字,对其排列进行这样一种运算.首先res加上当前排列的逆序对数,然后再随机选择当前数列的子序列,继续进行该运算直到子序列长度为0.求res的期望 ...

  2. 2019 杭电多校 E - Everything Is Generated In Equal Probability HDU 6595 数学

    给了你一个程序 程序 S1 将传入的 数组 返回一个随机子序列(不一定连续) 程序 S2 算这个数组 逆序对数量 程序 S3 算这个数组 经过S1 之后 用S2算逆序对数量 到这里 我们知道了 这个程 ...

  3. HDU 6595 Everything Is Generated In Equal Probability (期望dp,线性推导)

    Everything Is Generated In Equal Probability \[ Time Limit: 1000 ms\quad Memory Limit: 131072 kB \] ...

  4. hdu6595 Everything Is Generated In Equal Probability 数学期望

    链接 Everything Is Generated In Equal Probability 题意 ①给个N(1≤N≤3000),在1~N中等概率取一个数n ②随机产生一个1~n的排列,记录逆序对个 ...

  5. 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 ...

  6. poj 2096 , zoj 3329 , hdu 4035 —— 期望DP

    题目:http://poj.org/problem?id=2096 题目好长...意思就是每次出现 x 和 y,问期望几次 x 集齐 n 种,y 集齐 s 种: 所以设 f[i][j] 表示已经有几种 ...

  7. HDU 6595. Everything Is Generated In Equal Probability (期望+逆元)

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=6595 分析: 设f(n)=Calculate(Array)×Probability[Calculate( ...

  8. Everything Is Generated In Equal Probability(HDU - 6595,概率期望)

    一.题目链接: HDU-6595 二.题目大意: 题目给定一个正整数N. 在区间[1, N]中随机等概率地选取一个正整数n,然后随机等概率地生成一个长度为n的排列A,然后调用函数 CALCULATE( ...

  9. 【题目】HDU P6595(C849E)Everything Is Generated In Equal Probability

    题目大意 给出一个整数NNN和一段程序(包括三个函数): SUBSEQUENCE(Array)\text{SUBSEQUENCE(}Array\text)SUBSEQUENCE(Array):随机返回 ...

  10. hdu多校第二场 1005 (hdu6595) Everything Is Generated In Equal Probability

    题意: 给定一个N,随机从[1,N]里产生一个n,然后随机产生一个n个数的全排列,求出n的逆序数对的数量,加到cnt里,然后随机地取出这个全排列中的一个非连续子序列(注意这个子序列可以是原序列),再求 ...

最新文章

  1. 那还剩下多少学习激情?
  2. Maven——继承和聚合
  3. 没有基础的想转行学习Python怎么学
  4. Apache Wicket 7.2.0发布
  5. 字符串对象的charAt函数存在的意义
  6. mysql存储过程 大小写_MySQL数据记录大小写敏感问题【转】
  7. 为什么从PhoneGap中逃离
  8. JS 数组 Array 对象详解 与 for...of 增强型迭代
  9. MAXScript概况
  10. C++ MFC与三菱PLC通讯
  11. 最新版WIN10安装教程(官方纯净版)(适用于新机以及旧机重装系统或升级系统)
  12. 花-寒-进-13-A-丛林之路
  13. [BJDCTF 2nd] 燕言燕语-y1ng
  14. 略谈中国软件产品化的路线图
  15. 时间格式24小时制和12小时制
  16. Springboot +AOP日志系统
  17. js 带笔锋 签字版_袁大头签字版市值几十万
  18. flex布局文本不换行
  19. wps 2013 WPS Office和微软Office精确兼容 使用免费办公软件不用愁
  20. 【研究】移动办公趋势洞察系列之二:人工智能、智能硬件精彩纷呈,业务协同初心不变

热门文章

  1. 基于3D CNN的深度学习卫星图像土地覆盖分类
  2. [OpenGL] shadow mapping(实时阴影映射)
  3. 网络工程师的就业前景如何?市场需求如何?
  4. 内推安排!阿里淘系算法!
  5. 链路聚合+MSTP实验
  6. 腾讯免费企业邮箱服务器,怎样使用免费的腾讯企业邮箱
  7. 【历史上的今天】10 月 28 日:比尔·盖茨诞生;HTML 5 发布标准;讯飞语音输入法发布
  8. python财政收入预测分析_Python:Lasso方法、GM预测模型、神经网络预测模型之财政收入影响因素分析及预测...
  9. 【排序算法】冒泡排序、简单选择排序、直接插入排序比较和分析
  10. ☆ZigBee的碎片化