P3270 [JLOI2016]成绩比较 容斥 数论 组合数学 拉格朗日插值
LINK:成绩比较
大体思路不再赘述 这里只说几个我犯错的地方。
拉格朗日插值的时候 明明是n次多项式 我只带了n个值进去 导致一直GG.
拉格朗日插值的时候 由于是从1开始的 所以分母是\((i-1)!(n-1)\) 但是一直写成i! 心态炸裂。
还有就是 明明是分母 要求逆啊 直接乘 然后人没了。
最后是 关于答案的统计 由于被碾压的同学 每一科分数永远小于B神 所以 可以不考虑顺序的 将成绩分配给他们。
而 没有被碾压的同学 不可以直接分配 对于每一种方案来说 他们都是可以选择自由分配的 所以需要乘上自由分配的方案。
const int MAXN=110,INV=(mod+1)/2;
int n,m,K;
int U[MAXN],R[MAXN],f[MAXN],w[MAXN];
int fac[MAXN],inv[MAXN],NI[MAXN];
inline int C(int a,int b){return a<b?0:1ll*fac[a]*inv[b]%mod*inv[a-b]%mod;}
inline void add(int &x,int y){x=x+y>=mod?x+y-mod:x+y;}
inline int ksm(int b,int p)
{
int cnt=1;
while(p)
{
if(p&1)cnt=(ll)cnt*b%mod;
b=(ll)b*b%mod;p=p>>1;
}
return cnt;
}
inline int lagrange(int n,int x,int op)
{
int ans=1,cnt=0;
if(op)rep(1,n,i)w[i]=(ksm(i,n-2)+w[i-1])%mod,ans=(ll)ans*(x-i)%mod;
else
{
fep(n-1,1,i)w[i]=((ll)w[i]-w[i-1]+mod)*i%mod;
w[n]=ksm(n,n-2);
rep(1,n,i)
{
add(w[i],w[i-1]);
ans=(ll)ans*(x-i)%mod;
}
}
if(x<=n)return w[x];
add(ans,mod);
rep(1,n,i)
{
int ww=(ll)ans*w[i]%mod;
int cc=(ll)inv[i-1]*inv[n-i]%mod*NI[i]%mod;
add(cnt,(ll)ww*cc%mod*(((n-i)&1)?mod-1:1)%mod);
}
return (cnt+mod)%mod;
}
signed main()
{
freopen("1.in","r",stdin);
get(n);get(m);get(K);K=n-K-1;
rep(1,m,i)get(U[i]);
rep(1,m,i)get(R[i]);
fac[0]=1;rep(1,n+1,i)fac[i]=(ll)fac[i-1]*i%mod,f[i]=1;
inv[n+1]=ksm(fac[n+1],mod-2);f[0]=1;
fep(n,0,i)inv[i]=(ll)inv[i+1]*(i+1)%mod;
int ans=1;
rep(1,m,i)
{
int ww=ksm(U[i],R[i]-1),op=1,cnt=0;
int ni=ksm(U[i],mod-2);
rep(1,n+1,j)NI[j]=ksm((U[i]-j+mod)%mod,mod-2);
rep(0,R[i]-1,k)
{
add(cnt,(ll)ww*op%mod*C(R[i]-1,k)%mod*lagrange(k+n-R[i]+2,U[i],!k)%mod);
ww=(ll)ww*ni%mod;op=mod-op;
}
ans=(ll)ans*cnt%mod;
rep(0,K,j)f[j]=(ll)f[j]*C(j,R[i]-1)%mod;
}
int cc=0;
rep(0,K,j)add(cc,(ll)C(K,j)*f[j]%mod*((K-j)&1?mod-1:1)%mod);
cc=(ll)cc*ans%mod*C(n-1,K)%mod;put(cc);
return 0;
}
P3270 [JLOI2016]成绩比较 容斥 数论 组合数学 拉格朗日插值的更多相关文章
- bzoj4559[JLoi2016]成绩比较 容斥+拉格朗日插值法
4559: [JLoi2016]成绩比较 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 261 Solved: 165[Submit][Status ...
- ●BZOJ 4559 [JLoi2016]成绩比较(容斥)
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4559 题解: 容斥,拉格朗日插值法. 结合网上的另一种方法,以及插值法,可以把本题做到 O( ...
- 【BZOJ】4559: [JLoi2016]成绩比较 计数DP+排列组合+拉格朗日插值
[题意]n位同学(其中一位是B神),m门必修课,每门必修课的分数是[1,Ui].B神碾压了k位同学(所有课分数<=B神),且第x门课有rx-1位同学的分数高于B神,求满足条件的分数情况数.当有一 ...
- 【BZOJ3294】放棋子(动态规划,容斥,组合数学)
[BZOJ3294]放棋子(动态规划,容斥,组合数学) 题面 BZOJ 洛谷 题解 如果某一行某一列被某一种颜色给占了,那么在考虑其他行的时候可以直接把这些行和这些列给丢掉. 那么我们就可以写出一个\ ...
- 洛谷 P3270 - [JLOI2016]成绩比较(容斥原理+组合数学+拉格朗日插值)
题面传送门 考虑容斥.我们记 \(a_i\) 为钦定 \(i\) 个人被 B 神碾压的方案数,如果我们已经求出了 \(a_i\) 那么一遍二项式反演即可求出答案,即 \(ans=\sum\limits ...
- BZOJ4559&P3270[JLoi2016]成绩比较
题目描述 \(G\)系共有\(n\)位同学,\(M\)门必修课.这\(N\)位同学的编号为\(0\)到\(N-1\)的整数,其中\(B\)神的编号为\(0\)号.这\(M\)门必修课编号为\(0\)到 ...
- HDU 4135 Co-prime(容斥+数论)
Co-prime Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- BZOJ.4558.[JLOI2016]方(计数 容斥)
BZOJ 洛谷 图基本来自这儿. 看到这种计数问题考虑容斥.\(Ans=\) 没有限制的正方形个数 - 以\(i\)为顶点的正方形个数 + 以\(i,j\)为顶点的正方形个数 - 以\(i,j,k\) ...
- [BZOJ4558]:[JLoi2016]方(容斥+模拟)
题目传送门 题目描述 上帝说,不要圆,要方,于是便有了这道题.由于我们应该方,而且最好能够尽量方,所以上帝派我们来找正方形上帝把我们派到了一个有N行M列的方格图上,图上一共有$(N+1)\times ...
随机推荐
- 编写优秀CSS代码的8个策略
编写基本的CSS和HTML是我们作为Web开发人员学习的首要事情之一.然而,我遇到的很多应用程序显然没有人花时间真正考虑前端开发的长久性和可维护性. 我认为这主要是因为许多开发人员对组织CSS / H ...
- 状压DP之中国象棋
题目 传送们 这次小可可想解决的难题和中国象棋有关,在一个N行M列的棋盘上,让你放若干个炮(可以是0个),使得没有一个炮可以攻击到另一个炮,请问有多少种放置方法.大家肯定很清楚,在中国象棋中炮的行走方 ...
- 关于npm和yarn 安装vue脚手架
第一篇博客有点小紧张.轻喷~ 第一步:安装node.js 地址 --------https://nodejs.org/en/ 详细步骤这里就不写了 可以去看 地址 ----- ...
- 关于Pop!_OS 19.04有线网络始终正在连接
一开始使用Pop!_OS时就遇到这个问题,开机进入系统后明明网络没问题,WiFi正常可用, 但是插入网线后有线网络始终显示正在连接,然后可能过一会儿还会弹出来网络激活失败. 但是有可能在使用很久之后再 ...
- 为什么通常在发送数据埋点请求的时候使用的是 1x1 像素的透明 gif 图片?
避免跨域(img 天然支持跨域) 利用空白gif或1x1 px的img是互联网广告或网站监测方面常用的手段,简单.安全.相比PNG/JPG体积小,1px 透明图,对网页内容的影响几乎没有影响,这种请求 ...
- Django之模型层第二篇:多表操作
Django之模型层第二篇:多表操作 一 表关系回顾 在讲解MySQL时,我们提到,把应用程序的所有数据都放在一张表里是极不合理的. 比如我们开发一个员工管理系统,在数据库里只创建一张员工信息 ...
- MISC学习记录 (一)
A记录 题目 他在看什么视频,好像很好看,不知道是什么网站的. 还好我截取了他的数据包,找呀找. key就是网站名称.格式ctf{key} tip:A记录的第一条. 解题链接 过程 下载解题链接中的文 ...
- java 面向对象(六):类结构 方法(三) java的值传递机制
java的值传递机制 1.针对于方法内变量的赋值举例: System.out.println("***********基本数据类型:****************"); int ...
- [USACO3.1]形成的区域(扫描线+离散化)
[USACO3.1]形成的区域(P6432) 日期:2020-05-31 目录 [USACO3.1]形成的区域(P6432) 一.题意分析 二.算法分析 1. 暴力 0). 初始状态(红点为原点) 1 ...
- Redis之字典
概念 字典,又称为符号表.关联数组或映射(map),是一种用于保存键值对(key-value pair)的抽象数据结构.字典中每个键都是独一无二的,程序可以根据键来更新值,或者删除整个键值对. 用途 ...