首页 > 其他分享 >成绩比较

成绩比较

时间:2024-03-15 18:22:58浏览次数:19  
标签:选出 门课 个人 我们 反演 成绩 比较

这道题目虽然是放在容斥原理题单里面的,但实际上用的是二项式反演(当然这东西也是由容斥原理推导出来的)

但是啦我已经很满足了,我自己已经推出了大部分的式子了,只是最后不会二项式反演而已

这种没什么思路的题目,我们先从小范围开始想起

我们假设只有一门课,那么我们从\(n-1\)个同学中选出\(k\)个人(\(C_{n-1}^k\)),表示这些人被B神碾压,那么剩下的\(n-1-k\)个人的成绩都严格大于B神。我们假设B神的成绩是\(g\),那么答案就是\(C_{n-1}^kg^{k}(u-g)^{n-1-k}\)(注意要满足B神的排名与被碾压的人数不矛盾)

现在我们来看看有两门课。我们先从第一轮考虑,我们先选出\(r_1-1\)个人(\(C_{n-1}^{r_1-1}\))表示这些人的成绩严格大于B神,那么剩下的\(n-r_1\)个人就是在这门课中成绩没有超过B神的人。那么我们对第二门课做同样的操作,然后我们来判断是否符合条件。我们发现,当一个人在两门课都没被选择的时候,他才会被B神碾压,也就是说,我们设第一门课中选出的\(r_1-1\)个人的集合是\(S_1\),第二门课选出的\(r_2-1\)个人的集合是\(S_2\),那么我们需要满足\(k=n-1-|S_1∪S_2|\)

然后我们推广到三门课,有\(k=n-1-|S_1∪S_2∪S_3|\),然后我们就可以推广到\(m\)门课了

也就是说,先选择\(k\)个人表示这\(k\)个人不在任何一个\(S_i\)里面,而且最后要有\(|∪S_i|=n-1-k\)

我们先选择\(k\)个人,很显然,为\(C_{n-1}^k\)

然后我们来考察满足\(|∪S_i|=n-1-k\)的所有的方案数,这东西就要用到二项式反演了。有关二项式反演

然后我们发现我们整体的结构就已经确认好了。假设我们现在已经有了B神的成绩,分别为\((g_1,g_2,...,g_m)\),那么选出的\(k\)个人的第\(i\)门课的成绩就有\(g_i\)种选择,没被选出来的\(n-1-k\)个人第\(i\)门课的成绩就有\(u_i-g_i\)种选择,我们根据乘法原理乘起来就好了(这其实是非常重要的一个点,感觉很多容斥的题目,或者说计数的题目,当结构不同的时候,贡献是一样的,所以我们只用计算结构的数量就好了,比如这道题目,我们并不关心这\(k\)个人具体是谁,因为只有数量是一样的,贡献就一样)

但是还有个问题,我们不可能枚举每一个\(g\),这个时候就可以看这篇题解

标签:选出,门课,个人,我们,反演,成绩,比较
From: https://www.cnblogs.com/dingxingdi/p/18076006

相关文章

  • pandas:如何保存数据比较好?
    我们在使用pandas处理完数据之后,最终总是要把数据作为一个文件保存下来,那么,保存数据最常用的文件是什么呢?我想大部分人一定会选择csv或者excel。刚接触数据分析时,我也是这么选择的,不过,今天将介绍几种不一样的存储数据的文件格式。这些文件格式各有自己的一些优点,希望本文能让你以......
  • C# 哈希表Hashtable与字典表Dictionary<K,V>的比较。
    原文链接:https://blog.csdn.net/heyuchang666/article/details/50503240?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-50503240-blog-104036330.235%5Ev43%5Epc_blog_bottom_relevance_base4&depth_1-u......
  • 一般图最大点独立集一个比较牛的做法
    来自p_b_p_b。设\(out(u)\)为\(u\)的临域点集,\(f_S\)表示点集为\(S\)时的最大点独立集。转移考虑拿出最大的那个点\(u\),枚举其选不选则有\(f_S=\max(f_{S-u},f_{S-u-out(u)}+1)\)。当\(S\)只有后\(\frac{n}{2}\)个点时记忆化,时空复杂度都是\(\mathcal{O}(2^{......
  • 什么时候去检测大数据信用风险比较合适?
    什么时候去检测大数据信用风险比较合适?在当今这个数据驱动的时代,大数据信用风险检测已经成为个人的一项重要需求。本文将从贷前检测、信息泄露检测和定期检测三个方面,阐述何时进行大数据信用风险检测较为合适。一、贷前检测大数据信用风险检测在贷前阶段是非......
  • Edu 12 --- Simple Subset -- 题解 (一个比较巧妙的思维算法题)
    SimpleSubset:题解:  思路解析:    题目要求任意两个数的和为质数,那我们最坏情况就是任意选择一个数,此时子集为最大。    如果子集中有两个奇数或者偶数,他们两个之和一定会被2整除,那么我们只能选择一奇一偶。    如果多个奇数都为1的话,他们两两......
  • Self-Attention相比较RNN和LSTM的优缺点
    2024.3.13Self-AttentionSelf-Attention相比较RNN和LSTM的优缺点RNN基本单元结构无法做长序列,当一段话达到50个字,效果就很差了复杂度为n的平方$X_0$往后面越传播,信息越少(如你爷爷的爷爷的爷爷的名字)LSTM基本结构LSTM通过各种门,遗忘门,选择性的可以记忆之前的信息(200词)Se......
  • Java 引用变量的比较
    在Java中,当你使用双引号直接创建字符串时,如:Strings=“LXHYouth”;Strings2=“LXHYouth”;使用==运算符比较这两个引用时,结果为true然而,当你使用new关键字创建字符串对象时,情况就有所不同了:Strings3=newString(“LXHYouth”);//使用new关键字,s3指向堆中的一......
  • R语言【paleoTS】——compareModels:比较模型适合于古生物学时间序列
    Package paleoTS version0.5.3Description获取模型拟合函数的输出,并将模型拟合信息(对数似然、AICc等)编译成一个方便的表。UsagecompareModels(...,silent=FALSE,sort=FALSE)Arguments参数【...】:任意数量的模型拟合(as.paletsfit)对象。参数【silent】......
  • numpy中比较两个数字的断言函数
    比如在比较torch模型输出和onnxruntime输出,importonnxruntimeort_session=onnxruntime.InferenceSession("super_resolution.onnx",providers=["CPUExecutionProvider"])defto_numpy(tensor):returntensor.detach().cpu().numpy()iftensor.requires_g......
  • 844. 比较含退格的字符串c
    boolbackspaceCompare(char*s,char*t){intns=strlen(s),nt=strlen(t);inthead=0,tail=0;intn1=0,n2=0;while(tail<ns){if(head==0&&s[tail]=='#'){tail++;}elseif(s[tail]=='#')......