我们有梦想,我们可以暴算!

枚举每个人i,再枚举他的视野k,然后组合数!300的阶乘。A了。

 1 #include <cstdio>
 2 #include <algorithm>
 3 #define N 305
 4 using namespace std;
 5 int n,a[N],num[N];
 6 long double ans,A[N][N];
 7 int main(){
 8     scanf("%d",&n);
 9     for(int i=1;i<=n;i++){
10         scanf("%d",&a[i]);
11         num[i]=a[i];
12     }
13     sort(num+1,num+n+1);
14     for(int i=1;i<=n;i++)
15         a[i]=lower_bound(num+1,num+n+1,a[i])-num;
16     for(int i=0;i<=n;i++){
17         A[i][0]=1;
18         for(int j=1;j<=i;j++)
19             A[i][j]=A[i][j-1]*(i-j+1);
20     }
21     for(int i=1;i<=n;i++){
22         for(int k=1;k<n;k++){
23             ans+=k*(n-k)*A[a[i]-1][k-1]*(n-a[i])/A[n][k+1];
24             ans+=k*A[a[i]-1][k-1]/A[n][k];
25         }
26         ans+=n*A[a[i]-1][n-1]/A[n][n];
27     }
28     printf("%0.2lf\n",(double)ans);
29     return 0;
30 }

View Code

我们有理想,我们要推倒O(n)的式子。

我们考虑j什么时候会对i做出贡献,首先我们将高度大于等于i的乱排,然后把j放到i的前面,然后剩下的再乱排,这样j一定会对i做出贡献,于是我们考虑怎么计算,这相当于我们先把最后剩下的放进去,然后让把j和高度大于等于i的一起放进去,这里强制要求j在i前一个,于是就是$\frac{s*(n-s)!*A_{n}^{s-1}}{n!}+1$,s表示严格小于i的个数,然后再化简一下,就是$\frac{n+1}{n-s+1}$,于是我们就O(n)的完成了这道题!

 1 #include <cstdio>
 2 int n,buc[1000];
 3 double ans;
 4 int main(){
 5     scanf("%d",&n);
 6     for(int i=1,x;i<=n;i++)scanf("%d",&x),buc[x-1]++;
 7     for(int i=0,s=0;i<1000;i++)if(buc[i]){
 8         ans+=1.0*buc[i]*(n+1)/(n+1-s);
 9         s+=buc[i];
10     }
11     printf("%0.2lf\n",ans);
12 }

View Code

转载于:https://www.cnblogs.com/Ren-Ivan/p/8684005.html

bzoj2720 [Violet 5]列队春游相关推荐

  1. BZOJ2720: [Violet 5]列队春游

    2720: [Violet 5]列队春游 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 173  Solved: 125 [Submit][Statu ...

  2. BZOJ 2720 [Violet 5]列队春游 ——期望DP

    很喵的一道题(我可不是因为看了YOUSIKI的题解才变成这样的) $ans=\sum_{x<=n}\sum_{i<=n} iP(L=i)$ 其中P(x)表示视线为x的概率. 所以只需要求出 ...

  3. android+手机mac地址,Android 获取手机Mac地址,手机名称

    /** * 获取手机mac地址 * 错误返回12个0 */ public static String getMacAddress(Context context) { // 获取mac地址: Stri ...

  4. [JSOI2018]军训列队

    [JSOI2018]军训列队 题目大意: \(n(n\le5\times10^5)\)个学生排成一排,第\(i\)个学生的位置为\(a_i\).\(m(m\le5\times10^5)\)次命令,每次 ...

  5. bzoj 2724[Violet 6]蒲公英

    2724: [Violet 6]蒲公英 Time Limit: 40 Sec  Memory Limit: 512 MB Submit: 2630  Solved: 920 [Submit][Stat ...

  6. 在PHP中如何使用消息列队

    /*** 消息列队服务* @author zhou.tingze* @example* -----------------------------------Create--------------- ...

  7. BZOJ 2716: [Violet 3]天使玩偶

    2716: [Violet 3]天使玩偶 Time Limit: 80 Sec  Memory Limit: 128 MB Submit: 1473  Solved: 621 [Submit][Sta ...

  8. JZOJ 5478. 【NOIP2017提高组正式赛】列队

    Description Sylvia 是一个热爱学习的女孩子.前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia所在的方阵中有n × m名学生,方阵的行数为 n, ...

  9. 跑不出来_内蒙古23只狍子罕见列队出没,它们是出来透透气?

    #「闪光时刻」主题征文 二期#狍子出没在原野,这是一种什么样的风景线? 话说狍子是一种食草野生动物.通常生活在我国的东北.西北.华北和内蒙古一带,它们活动的环境通常是在一些小山坡稀疏的树林中. 但是最 ...

最新文章

  1. 利用边缘检测计算物体面积(内含源码)
  2. c语言中当二维数组越界时会有错误提示,萌新请教大佬们。动态二维数组莫名其妙越界了,找了半天没发现有错啊...
  3. NYOJ 228 士兵杀敌(五)
  4. NAS服务器局域网内IPad、手机、电视盒子等联网播放
  5. 开源项目管理系统:ProjectForge
  6. c语言输出七个换行6,多样例输出,如何去掉最后一个回车
  7. Excel一元线性回归分析
  8. LibreOffice创建数据透视表
  9. matlab c2d tustin,Matlab中的c2d函数用法以及绘制传函的Bode图
  10. 华为数通笔记-PPPoE
  11. Python如何根据日期判断周几
  12. rtx2060什么水平_新一代主流游戏显卡RTX2060来了,它的性能究竟如何?
  13. App地推活动的效果差?可能是地推业绩统计效率低惹的祸
  14. IDG刘雨坤:关于SaaS业务七点经验
  15. “改造” VS Code 编辑器,一起写个插件吧!
  16. pyaudio安装失败的解决方法
  17. jmeter压测学习10-linux上执行遇到的问题 There is insufficient memory for the Java Runtime Environment to continu
  18. Oracle数据库产重启服务、监听程序命令
  19. WLAN网络配置,旁挂AC
  20. Python爬虫成长之路:抓取证券之星的股票数据(转)

热门文章

  1. 获取 GPG 密钥失败:[Errno 14] 2011-05-26 14:43
  2. 认识CentOS下boot目录和el5、el6文件
  3. WDK开发环境构建驱动程序入门、Windows驱动程序的Check Build和Free Build
  4. 图解Win7下安装Borland C++ 3.1失败记
  5. 过渡期间的测试:外包软件的测试标准(译)
  6. 2019秋第三周学习总结
  7. 鸟哥的Linux私房菜-第10/11/12/13章(vim程序编辑器、学习bash、正则表达式与文件格式化处理、学习Shell Scripts)...
  8. 论文笔记——N2N Learning: Network to Network Compression via Policy Gradient Reinforcement Learning...
  9. Linux中查看端口占用情况及结束相应进程
  10. 添加/移除事件处理程序