当前位置: 首页 > news >正文

做网站去哪个公司什么是seo文章

做网站去哪个公司,什么是seo文章,李氏牛仔网站建设风,做seo网站图片怎么优化传送门 这是我见过的为数不多的良心九怜题之一。 题目大意 给定一个长度为$n$序列,你要在序列末尾加入$m$个$[L,R]$之间的数$m\leq 10^7,L,R\leq 10^9$,使得该序列猴子排序的轮数(一轮是指随机打乱整个序列,不断重复操作直到否有序…

传送门

这是我见过的为数不多的良心九怜题之一。

题目大意

给定一个长度为$n$序列,你要在序列末尾加入$m$个$[L,R]$之间的数$m\leq 10^7,L,R\leq 10^9$,使得该序列猴子排序的轮数(一轮是指随机打乱整个序列,不断重复操作直到否有序)期望最大,求这个最大的期望。

 

题解

假设序列元素互不相同,那么有序的排列方式只有一个,而排列方式的数量有$n!$种,每轮成功的概率是$\frac {1}{n!}$,所以期望轮数是$n!$。

考虑第$i$种元素有$cnt_i$个的序列有多少个。

元素是互不相同的,所以$cnt_i$个第$i$个元素在有序序列中的相对位置是固定的,而元素在这些位置的排列是任意的,所有有序的排列方式有$\prod cnt_i!$个,期望是$\frac {n!}{\prod cnt_i!}$。

若使上式子最大,由于$(n+1)!(n-1)!>(n!)^2$很明显希望使得$\max cnt_i$最小且平均。

那么我们统计原序列中$[L,R]$之间的数,每次加入数量最小的元素,直到加入了$m$个数,最后计算答案即可,这个排一下序优化一下就行了。

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#define LL long long
#define M 200020
#define MAXN 10200010
#define mod 998244353
using namespace std;
namespace IO{const int BS=(1<<20); int Top=0;char Buffer[BS],OT[BS],*OS=OT,*HD,*TL,SS[20]; const char *fin=OT+BS-1;char Getchar(){if(HD==TL){TL=(HD=Buffer)+fread(Buffer,1,BS,stdin);} return (HD==TL)?EOF:*HD++;}void flush(){fwrite(OT,1,OS-OT,stdout);}void Putchar(char c){*OS++ =c;if(OS==fin)flush(),OS=OT;}void write(int x){if(!x){Putchar('0');return;} if(x<0) x=-x,Putchar('-');while(x) SS[++Top]=x%10,x/=10;while(Top) Putchar(SS[Top]+'0'),--Top;}int read(){int nm=0,fh=1; char cw=Getchar();for(;!isdigit(cw);cw=Getchar()) if(cw=='-') fh=-fh;for(;isdigit(cw);cw=Getchar()) nm=nm*10+(cw-'0');return nm*fh;}
}
using namespace IO;
int add(int x,int y){return (x+y>=mod)?x+y-mod:x+y;}
int mul(int x,int y){return (x==1||y==1)?x+y-1:(LL)x*(LL)y%mod;} 
int qpow(int x,int sq){int res=1;for(;sq;sq>>=1,x=mul(x,x)) if(sq&1) res=mul(res,x);return res;
}
int p[M],fac[MAXN],ifac[MAXN],cnt[M],t[M];
int main(){fac[0]=1;for(int i=1;i<MAXN;++i) fac[i]=mul(fac[i-1],i); ifac[MAXN-1]=qpow(fac[MAXN-1],mod-2);for(int i=MAXN-1;i;--i) ifac[i-1]=mul(ifac[i],i);for(int T=read();T;--T){int n=read(),m=read(),l=read(),r=read();int now=r-l+1,num=0,tot=1,ans,tmp=0,fin;for(int i=1;i<=n;i++) cnt[i]=0,p[i]=read();sort(p+1,p+n+1),ans=fac[n+m];for(int i=1;i<=n;i++,tot++){while(p[i]==p[i+1]&&i<n) i++,cnt[tot]++; cnt[tot]++;if(p[i]>=l&&p[i]<=r) t[++tmp]=cnt[tot],now--;else ans=mul(ans,ifac[cnt[tot]]);} tot--,sort(t+1,t+tmp+1);for(fin=1;fin<=tmp;fin++){if((LL)(t[fin]-num)*(LL)now>(LL)m) break;m-=(t[fin]-num)*now,now++,num=t[fin];} num+=m/now,m%=now;ans=mul(ans,mul(qpow(ifac[num+1],m),qpow(ifac[num],now-m)));for(int i=fin;i<=tmp;i++) ans=mul(ans,ifac[t[i]]);write(ans),Putchar('\n');}flush(); return 0;
}

转载于:https://www.cnblogs.com/OYJason/p/9821372.html

http://www.lbrq.cn/news/2488303.html

相关文章:

  • 那些免费网站做推广比较好seo推广营销公司
  • 网站的域名在哪里看b站24小时自助下单平台网站
  • 为公司做网站要做什么准备线上推广策划方案范文
  • 做网站表格单边框标记长春做网站推广的公司
  • 如何做流量充值网站百度指数分析
  • 临清聊城网站优化武汉seo关键词优化
  • 胶南网站建设多少钱如何在百度上打广告
  • 做网站webform mvc网站优化名词解释
  • 浙江平台网站建设找哪家什么是seo是什么意思
  • 聚化网网站抖音seo排名
  • 天气网站建设域名批量查询工具
  • 上海公司名字查询天津关键词优化平台
  • 万网市值关键词优化平台有哪些
  • 手机网站建设维护协议seo网站推广主要目的不包括
  • Wordpress host宁波seo关键词优化制作
  • 九江市做网站的公司seo结算系统
  • 新开传奇网站超变活动推广软文
  • 深圳网站建设营销策划企业新闻营销
  • 佛山大型网站建设百度网络营销中心
  • 余姚企业网站建设全国最大的关键词挖掘
  • 做网站需要硬件设施附近成人电脑培训班
  • 长沙企业网站建设哪家好广州各区最新动态
  • 网上书店网站建设规划书推广文案怎么写吸引人
  • 如何做属于自己的网站怎么把抖音关键词做上去
  • 教育网站建设网站seo排名专业公司
  • 济南做网站的公司哪家好网上商城网站开发
  • 网站定制开发是什么百度网盘免费下载
  • 网站建设如何选择域名个人网站注册平台
  • 西安有那些做网站的公司好宁德市属于哪个省
  • 专做婚宴用酒是网站seo技巧seo排名优化
  • springboot基于Java的人力资源管理系统设计与实现
  • JavaWeb(苍穹外卖)--学习笔记13(微信小程序开发,缓存菜品,Spring Cache)
  • Agent大模型大厂面试题及讲解答案
  • 宏观杠杆率及其数据获取(使用AKShare)
  • VisionPro系列讲解 - 03 Simulator 模拟器使用
  • Chessboard and Queens