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}dp[n]=E+2ni=0∑n−1Cnidp[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−2n14n(n−1)+2ni=0∑n−1Cnidp[i]
res=∑i=0ndp[i]nres=\frac{\sum\limits_{i=0}^{n}dp[i]}{n}res=ni=0∑ndp[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相关推荐
- 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 6595 Everything Is Generated In Equal Probability (期望dp,线性推导)
Everything Is Generated In Equal Probability \[ Time Limit: 1000 ms\quad Memory Limit: 131072 kB \] ...
- hdu6595 Everything Is Generated In Equal Probability 数学期望
链接 Everything Is Generated In Equal Probability 题意 ①给个N(1≤N≤3000),在1~N中等概率取一个数n ②随机产生一个1~n的排列,记录逆序对个 ...
- 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 ...
- poj 2096 , zoj 3329 , hdu 4035 —— 期望DP
题目:http://poj.org/problem?id=2096 题目好长...意思就是每次出现 x 和 y,问期望几次 x 集齐 n 种,y 集齐 s 种: 所以设 f[i][j] 表示已经有几种 ...
- HDU 6595. Everything Is Generated In Equal Probability (期望+逆元)
题目: http://acm.hdu.edu.cn/showproblem.php?pid=6595 分析: 设f(n)=Calculate(Array)×Probability[Calculate( ...
- Everything Is Generated In Equal Probability(HDU - 6595,概率期望)
一.题目链接: HDU-6595 二.题目大意: 题目给定一个正整数N. 在区间[1, N]中随机等概率地选取一个正整数n,然后随机等概率地生成一个长度为n的排列A,然后调用函数 CALCULATE( ...
- 【题目】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里,然后随机地取出这个全排列中的一个非连续子序列(注意这个子序列可以是原序列),再求 ...
最新文章
- 那还剩下多少学习激情?
- Maven——继承和聚合
- 没有基础的想转行学习Python怎么学
- Apache Wicket 7.2.0发布
- 字符串对象的charAt函数存在的意义
- mysql存储过程 大小写_MySQL数据记录大小写敏感问题【转】
- 为什么从PhoneGap中逃离
- JS 数组 Array 对象详解 与 for...of 增强型迭代
- MAXScript概况
- C++ MFC与三菱PLC通讯
- 最新版WIN10安装教程(官方纯净版)(适用于新机以及旧机重装系统或升级系统)
- 花-寒-进-13-A-丛林之路
- [BJDCTF 2nd] 燕言燕语-y1ng
- 略谈中国软件产品化的路线图
- 时间格式24小时制和12小时制
- Springboot +AOP日志系统
- js 带笔锋 签字版_袁大头签字版市值几十万
- flex布局文本不换行
- wps 2013 WPS Office和微软Office精确兼容 使用免费办公软件不用愁
- 【研究】移动办公趋势洞察系列之二:人工智能、智能硬件精彩纷呈,业务协同初心不变
热门文章
- 基于3D CNN的深度学习卫星图像土地覆盖分类
- [OpenGL] shadow mapping(实时阴影映射)
- 网络工程师的就业前景如何?市场需求如何?
- 内推安排!阿里淘系算法!
- 链路聚合+MSTP实验
- 腾讯免费企业邮箱服务器,怎样使用免费的腾讯企业邮箱
- 【历史上的今天】10 月 28 日:比尔·盖茨诞生;HTML 5 发布标准;讯飞语音输入法发布
- python财政收入预测分析_Python:Lasso方法、GM预测模型、神经网络预测模型之财政收入影响因素分析及预测...
- 【排序算法】冒泡排序、简单选择排序、直接插入排序比较和分析
- ☆ZigBee的碎片化