BZOJ3622 已经没有什么好害怕的了
2024-08-26 20:28:29
Description
Input
Output
Sample Input
4 2
5 35 15 45
40 20 10 30
5 35 15 45
40 20 10 30
Sample Output
4
HINT
输入的2*n个数字保证全不相同。
还有输入应该是第二行是糖果,第三行是药片
首先$a_i>b_i$的情况数:
$k=\frac{n+k}{2}$
如果不能整除则无解
先按a,b排序
预处理出$l[i]$,表示$a_i$大于$b_j$的最大j
这样设f[i][j]表示当前a序列第i个数,有j组$a>b$的方案
使$a_i>b$有$l[i]$种方案,但是前面已经用了j-1
所以$f[i][j]=f[i-1][j]+f[i-1][j-1]*(l[i]-j+1)$
这样求出来的是“至少”有j对的方案数,而我们需要的是“恰好”有k对的方案数。
所以容斥
$ans=\sum_{i=k}^{n}(-1)^{i-k}*f[n][i]*C_i^{k}*(n-i)!$
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long lol;
int a[],b[],n,k,Mod=1e9+,l[];
lol f[][],C[][],fac[],ans;
int main()
{int i,j;
cin>>n>>k;
if ((n+k)&)
{
cout<<;
return ;
}
k=(n+k)/;
fac[]=;
for (i=;i<=n;i++)
fac[i]=1ll*fac[i-]*i%Mod;
for (i=;i<=n;i++)
{
C[i][]=;
for (j=;j<=i;j++)
C[i][j]=(C[i-][j-]+C[i-][j])%Mod;
}
for (i=;i<=n;i++)
{
scanf("%d",&a[i]);
}
for (i=;i<=n;i++)
{
scanf("%d",&b[i]);
}
sort(a+,a+n+);sort(b+,b+n+);
for (i=;i<=n;i++)
{
for (j=;j<=n;j++)
if (a[i]>b[j]) l[i]++;
else break;
}
for (i=;i<=n;i++)
{
f[i][]=;
for (j=;j<=i;j++)
{
f[i][j]=(f[i][j]+1ll*(l[i]-(j-))*f[i-][j-]%Mod)%Mod;
f[i][j]=(f[i][j]+f[i-][j])%Mod;
}
}
for (i=k;i<=n;i++)
{
if ((i-k)%==)
ans+=1ll*f[n][i]*C[i][k]%Mod*fac[n-i]%Mod,ans%=Mod;
else ans-=1ll*f[n][i]*C[i][k]%Mod*fac[n-i]%Mod,ans=(ans+Mod)%Mod;
}
cout<<ans;
}
最新文章
- python模块引用问题(比较杂乱,懒得整理)
- Android 手势水平监听判断
- RPC远程过程调用协议
- EF Code First DataAnnotations
- [js] 跨域
- STL 常用的一些容器总结
- 对PHP安全有帮助的一些函数
- 认识Junit
- 没有花括号(大括号)的for循环也能正确执行
- redis五种数据类型
- azure备份虚拟机
- Asp.Net Core 2.0 项目实战(9) 日志记录,基于Nlog或Microsoft.Extensions.Logging的实现及调用实例
- sqlite基本用法
- Linux编程 21 shell编程(环境变量,用户变量,命令替换)
- Sublime text 3支持utf-8
- Docker 安装 - Docker 与前端(一)
- 待解决:PDF header signature not found
- Qt信号槽的一些事
- logger示例
- 郑轻校赛 2127 tmk射气球 (数学)
热门文章
- JavaScript(第三十天)【XPath】
- LeetCode---Container With Most Water(11)
- 201621123031 《Java程序设计》第10周学习总结
- python 使用Nginx和uWSGI来运行Python应用
- 【iOS】OC-UTC日期字符串格式化
- C#网页提交html代码报错
- ";双非";应届生校招如何获得大厂青睐?(内附技术岗超全求职攻略)
- Docker学习笔记 - Docker部署nginx网站
- api-gateway实践(01)服务网关 - 原型功能
- SOAPtest报错:error occurred during initialization of vm解决方法