JZOJ5968. 电竞选手

2023-11-23 16:30
文章标签 竞选 jzoj5968

本文主要是介绍JZOJ5968. 电竞选手,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

题解

最小代价的方案是很显然的,
排序之后,相邻的两两构成一个二元组就可以了。
考虑对于相同的数字,
显然,这一段相同的先互相之间构成二元组,删剩最后一个的时候,去跟后面的一个构成二元组。
考虑这一段相同的数跟前面的二元组之间构成多少种方案,
记这一段连续的数的长度为l,前面有x个数,
那么前面总共就有x-1个二元组,而现在又会产生新的l-1个二元组。
枚举新产生的二元组有多少个是放在前面x-1个二元组之间的,
∑ i = 1 i &lt; l C x − 1 + i i \sum _{i=1}^{i&lt;l} C^i_{x-1+i} i=1i<lCx1+ii
现在考虑这一段数之间,自己相互删的方案数,
f i f_i fi表示有i+1个相同的数自己相互删去的方案数,
f i = f i − 1 ∗ C i + 1 2 f_i=f_{i-1}*C_{i+1}^2 fi=fi1Ci+12
所以最后的答案就是每一段数与之前二元组的方案乘上自己的方案。

code

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <math.h>
#define ll long long
#define G getchar
using namespace std;
char ch;
void read(int &n)
{n=0;ch=G();while((ch<'0' || ch>'9') && ch!='-')ch=G();int w=1;if(ch=='-')w=-1,ch=G();while('0'<=ch && ch<='9')n=(n<<3)+(n<<1)+ch-'0',ch=G();n*=w;
}const int mo=1000000007,N=100003;
int n,a[N],lst,si;
ll ans,sum,f[N],jc[N],ny[N];ll ksm(ll x,int y)
{ll s=1;for(;y;y>>=1,x=x*x%mo)if(y&1)s=s*x%mo;return s;
}
ll C(int x,int y)
{return jc[y]*ny[x]%mo*ny[y-x]%mo;
}
int main()
{jc[0]=ny[0]=f[0]=1;read(n);for(int i=1;i<=n;i++)read(a[i]),jc[i]=jc[i-1]*i%mo,f[i]=f[i-1]*((ll)(i+1)*i/2%mo)%mo;ny[n]=ksm(jc[n],mo-2);for(int i=n;i;i--)ny[i-1]=ny[i]*i%mo;sort(a+1,a+1+n);a[0]=a[1]-1;ans=sum=si=lst=1;a[n+1]=a[n]+1;for(int i=1;i<=n+1;i++)if(a[i]^a[i-1]){if(lst>1)ans=ans*sum%mo*f[si-1]%mo;else ans=ans*f[si-1]%mo;si=sum=1,lst=i;}else si++,sum=(sum+C(i-lst,i-1))%mo;printf("%lld",ans);return 0;
}

这篇关于JZOJ5968. 电竞选手的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/419244

相关文章

特朗普竞选带火PoliFi,以Bitget为例

以特朗普系列Meme币为代表的政治金融(PoliFi)概念币市场正在掀起热潮,前美国总统特朗普(Donald Trump)在本月稍早公开力挺加密货币,接着又在周二宣布接受比特币、以太币、SOL、USDC、DOGE…等政治献金,让相关通证高涨。 据CoinGecko数据,在特朗普竞选团队周二宣布接受加密货币捐款后,Meme币TRUMP价格单日又上涨近8%,在过去两周涨幅已超过90%

IBM技术俱乐部主席竞选

IBM技术俱乐部主席竞选 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte 总提交:510            测试通过:188 描述 今天IBM技术俱乐部举行主席竞选,你的任务是统计谁是得票最多的候选人。 输入 输入数据包含多组测试案例。 每组测试案例由N(0<N<1000)开头,N表示投票总数,后续N行每行包含一个参加主席

王者荣耀电竞选手退役自学转行程序员:意志和兴趣更重要

谁能想到,一位王者荣耀职业选手的退役生活,竟然是这样的: 自学、转行,做起了程序员! 但也正是如此 " 两极反转 " 的经历,引发了不小的热议。 为什么转行做程序员? 这位王者荣耀职业选手昵称叫做阿离。 据他自述,主要有两点原因。 首先是自己从小就对计算机感兴趣;其次是跟他玩得比较好的同学就是做程序员,同学也是推荐阿离尝试这个行业。 而阿离在入行前 " 补课 " 的方式,也是此次网

jsp+ssm计算机毕业设计电竞选手信息管理系统论文2022【附源码】

项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JSP+SSM + mybatis + Maven等等组成,B/S模式 + Maven管理等等。 环境需要 1.运行环境:最好是java jdk

[附源码]SSM计算机毕业设计电竞选手信息管理系统论文2022JAVA

项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。 环境需要 1.运行环境:最好是java

JZOJ-senior-5968. 电竞选手

Time Limits: 1000 ms Memory Limits: 262144 KB Description Input&Output Sample Input&Sample Output Data Constraint Solution 显然顺序不影响答案,先从小到大排序,相同的数称作同一块 费用最少,肯定是块内相同的数相消,然后不同块之间消1次 设 f i

[附源码]java毕业设计电竞选手信息管理系统论文2022

项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。 环境需要 1.运行环境:最好是java

[附源码]计算机毕业设计JAVA电竞选手信息管理系统论文2022

[附源码]计算机毕业设计JAVA电竞选手信息管理系统论文2022 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM + mybatis + Maven + Vue 等等组成,B/S模式 + M

ssm+jsp计算机毕业设计电竞选手信息管理系统no822(程序+LW+源码+远程部署)

项目运行 项目含有源码(见文末)、文档、程序、数据库、配套开发软件、软件安装教程 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM + mybatis + Maven + JSP 等等组成,B/S模式 +

职业选收的手速测试软件,想成为一名职业电竞选手,但手速反映能力不是很好,有什么方法没?...

如今国内的电竞行业发展的越来越迅速,电竞也正式被确立为第九十九个体育项目,也涌现了一大批具有实力的选手,想要成为一名职业选手不是那么容易的,需要有天赋和手速,在游戏当中,我们的手术是有一定的要求的,尤其是像英雄联盟或者是吃鸡这样的游戏,如果说你的手速过慢的话,就会打不过敌人,这样是非常吃亏的。 我们在日常练习的时候其实可以用一些文章来进行练习,就比如说打字,只要你能够准确无误的快速的将一篇文章