bzoj2720 [Violet 5]列队春游
我们有梦想,我们可以暴算!
枚举每个人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]列队春游相关推荐
- BZOJ2720: [Violet 5]列队春游
2720: [Violet 5]列队春游 Time Limit: 5 Sec Memory Limit: 128 MB Submit: 173 Solved: 125 [Submit][Statu ...
- BZOJ 2720 [Violet 5]列队春游 ——期望DP
很喵的一道题(我可不是因为看了YOUSIKI的题解才变成这样的) $ans=\sum_{x<=n}\sum_{i<=n} iP(L=i)$ 其中P(x)表示视线为x的概率. 所以只需要求出 ...
- android+手机mac地址,Android 获取手机Mac地址,手机名称
/** * 获取手机mac地址 * 错误返回12个0 */ public static String getMacAddress(Context context) { // 获取mac地址: Stri ...
- [JSOI2018]军训列队
[JSOI2018]军训列队 题目大意: \(n(n\le5\times10^5)\)个学生排成一排,第\(i\)个学生的位置为\(a_i\).\(m(m\le5\times10^5)\)次命令,每次 ...
- bzoj 2724[Violet 6]蒲公英
2724: [Violet 6]蒲公英 Time Limit: 40 Sec Memory Limit: 512 MB Submit: 2630 Solved: 920 [Submit][Stat ...
- 在PHP中如何使用消息列队
/*** 消息列队服务* @author zhou.tingze* @example* -----------------------------------Create--------------- ...
- BZOJ 2716: [Violet 3]天使玩偶
2716: [Violet 3]天使玩偶 Time Limit: 80 Sec Memory Limit: 128 MB Submit: 1473 Solved: 621 [Submit][Sta ...
- JZOJ 5478. 【NOIP2017提高组正式赛】列队
Description Sylvia 是一个热爱学习的女孩子.前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia所在的方阵中有n × m名学生,方阵的行数为 n, ...
- 跑不出来_内蒙古23只狍子罕见列队出没,它们是出来透透气?
#「闪光时刻」主题征文 二期#狍子出没在原野,这是一种什么样的风景线? 话说狍子是一种食草野生动物.通常生活在我国的东北.西北.华北和内蒙古一带,它们活动的环境通常是在一些小山坡稀疏的树林中. 但是最 ...
最新文章
- 利用边缘检测计算物体面积(内含源码)
- c语言中当二维数组越界时会有错误提示,萌新请教大佬们。动态二维数组莫名其妙越界了,找了半天没发现有错啊...
- NYOJ 228 士兵杀敌(五)
- NAS服务器局域网内IPad、手机、电视盒子等联网播放
- 开源项目管理系统:ProjectForge
- c语言输出七个换行6,多样例输出,如何去掉最后一个回车
- Excel一元线性回归分析
- LibreOffice创建数据透视表
- matlab c2d tustin,Matlab中的c2d函数用法以及绘制传函的Bode图
- 华为数通笔记-PPPoE
- Python如何根据日期判断周几
- rtx2060什么水平_新一代主流游戏显卡RTX2060来了,它的性能究竟如何?
- App地推活动的效果差?可能是地推业绩统计效率低惹的祸
- IDG刘雨坤:关于SaaS业务七点经验
- “改造” VS Code 编辑器,一起写个插件吧!
- pyaudio安装失败的解决方法
- jmeter压测学习10-linux上执行遇到的问题 There is insufficient memory for the Java Runtime Environment to continu
- Oracle数据库产重启服务、监听程序命令
- WLAN网络配置,旁挂AC
- Python爬虫成长之路:抓取证券之星的股票数据(转)
热门文章
- 获取 GPG 密钥失败:[Errno 14] 2011-05-26 14:43
- 认识CentOS下boot目录和el5、el6文件
- WDK开发环境构建驱动程序入门、Windows驱动程序的Check Build和Free Build
- 图解Win7下安装Borland C++ 3.1失败记
- 过渡期间的测试:外包软件的测试标准(译)
- 2019秋第三周学习总结
- 鸟哥的Linux私房菜-第10/11/12/13章(vim程序编辑器、学习bash、正则表达式与文件格式化处理、学习Shell Scripts)...
- 论文笔记——N2N Learning: Network to Network Compression via Policy Gradient Reinforcement Learning...
- Linux中查看端口占用情况及结束相应进程
- 添加/移除事件处理程序