BZOJ2720 [Violet 5]列队春游
来源:互联网 发布:12306网络订餐配送工 编辑:程序博客网 时间:2024/04/30 09:55
考虑期望的线性性,总期望视线长度等于每个人有每个视线长度的概率乘以视线长度的和,枚举每个人所在的位置和视线长度,计算满足这个人在这个位置有这个区间长度的排列个数然后除以n的阶乘,作和即可
计算排列个数用排列数和各种阶乘什么的搞一下就可以了,具体可以看代码里的注释部分
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<ctime>#include<cmath>#include<algorithm>#include<iomanip>#include<vector>#include<map>#include<set>#include<bitset>#include<queue>#include<stack>using namespace std;#define MAXN 1010#define MAXM 1010#define INF 1000000000#define MOD 1000000007#define eps 1e-8#define ll long longint n;int a[MAXN];int s[MAXN],b[MAXN];int cnt[MAXN];double ans;int t[MAXN];int main(){int i,j,k,l;scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&a[i]);}for(i=1;i<=n;i++){b[i]=-1;for(j=1;j<=n;j++){s[i]+=a[j]<a[i];b[i]+=a[j]>=a[i];}}for(i=1;i<=n;i++){memset(cnt,0,sizeof(cnt));for(j=1;j<=n;j++){for(k=1;k<j&&k-1<=s[i];k++){cnt[k]++;}if(j-1<=s[i]){memset(t,0,sizeof(t));for(l=2;l<=s[i];l++){t[l]++;}for(l=2;l<=s[i]-(j-1);l++){t[l]--;}for(l=2;l<=n-j;l++){t[l]++;}for(l=2;l<=n;l++){t[l]--;}double re=j;for(l=1;l<=n;l++){while(t[l]>0){re*=l;t[l]--;}while(t[l]<0){re/=l;t[l]++;}}ans+=re;//ans+=P(s[i],j-1)*j*fac[n-j]/fac[n];}}for(k=1;k-1<=s[i];k++){memset(t,0,sizeof(t));for(l=2;l<=s[i];l++){t[l]++;}for(l=2;l<=s[i]-(k-1);l++){t[l]--;}for(l=2;l<=n-k-1;l++){t[l]++;}for(l=2;l<=n;l++){t[l]--;}double re=1.0*cnt[k]*b[i]*k;for(l=1;l<=n;l++){while(t[l]>0){re*=l;t[l]--;}while(t[l]<0){re/=l;t[l]++;}}ans+=re;//ans+=cnt[k]*P(s[i],k-1)*b[i]*k*fac[n-k-1]/fac[n];}}printf("%.2lf\n",ans);return 0;}/*31 2 3*/
0 0
- bzoj2720: [Violet 5]列队春游
- BZOJ2720 [Violet 5]列队春游
- bzoj2720 [Violet 5]列队春游 (期望概率)
- BZOJ2720 列队春游 [期望][数学]
- [期望 数学] BZOJ 2720 [Violet 5]列队春游
- [BZOJ] 2720 列队春游 期望DP O(n)
- 春游
- 春游
- 【Violet 5】【BZOJ2721】樱花
- [bzoj2721][Violet 5]樱花
- VIOLET
- 【bzoj2721】【Violet 5】樱花【数论】
- BZOJ 2721 [Violet 5]樱花
- BZOJ 2721 Violet 5 樱花 数论
- 2721: [Violet 5]樱花|约数个数
- [数学 欧拉筛] BZOJ 2721 [Violet 5]樱花
- [F][5]bzoj 2724: [Violet 6]蒲公英
- bzoj 2721: [Violet 5]樱花 线性筛
- Android设计模式源码解析之单例模式
- Android 内存泄漏总结
- mpi学习日志(13):mpi4py与非阻塞型函数
- shell分析日志常用命令快速入门
- Howto set maximum user processes on AIX [ID 1084995.1]
- BZOJ2720 [Violet 5]列队春游
- Python 下的数据结构实现
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- display的inline、block、inline-block 的区别
- 在activity里获取adapter的控件
- 日期控件 及显示
- python3爬虫--抓取天气信息
- JVM加载class文件的机制
- Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition