BZOJ - 3622:已经没有什么好害怕的了 (广义容斥)
【BZOJ3622】已经没有什么好害怕的了
Description
.jpg)
Input
.jpg)
Output
.jpg)
Sample Input
5 35 15 45
40 20 10 30
Sample Output
HINT
.jpg)
输入的2*n个数字保证全不相同。
题意:给定a数组和b数组,大小都为N,现在让你两两配对,使得a>b个个数=(N+K)/2; a<b的个数=(N-K)/2;
思路:用容斥来求。 我们假设a>b为A情况,a<b为B情况。先让ab数组分别排序; f[i][j]表示前i个a数组至少存在j个A情况的方案数,那么可以得到f的递推式。 最后用容斥来累加答案。
推荐CQZhangYU的博客。
#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
const int maxn=;
const int Mod=1e9+;
int C[maxn][maxn],f[maxn][maxn],a[maxn],b[maxn],jc[maxn],ans;
int main()
{
int N,K; scanf("%d%d",&N,&K);
jc[]=; rep(i,,N) jc[i]=(ll)jc[i-]*i%Mod;
rep(i,,N){
C[i][]=;
rep(j,,i) C[i][j]=(C[i-][j]+C[i-][j-])%Mod;
}
rep(i,,N) scanf("%d",&a[i]);
rep(i,,N) scanf("%d",&b[i]);
sort(a+,a+N+) ;sort(b+,b+N+);
f[][]=;
rep(i,,N){
int pos=upper_bound(b+,b+N+,a[i])-b; pos--;
rep(j,,i){
f[i][j]=(f[i-][j]+(ll)f[i-][j-]*max(pos-j+,)%Mod)%Mod;
}
f[i][]=f[i-][];
}
if((N+K)%==) return puts(""),;
K=(N+K)/;
rep(i,K,N){
f[N][i]=(ll)f[N][i]*jc[N-i]%Mod;
if((i-K)&) ans=((ans-(ll)f[N][i]*C[i][K]%Mod)%Mod+Mod)%Mod;
else ans=(ans+(ll)f[N][i]*C[i][K]%Mod)%Mod;
}
printf("%lld\n",(ans%Mod+Mod)%Mod);
return ;
}
BZOJ - 3622:已经没有什么好害怕的了 (广义容斥)的更多相关文章
- bzoj 3622 已经没有什么好害怕的了 类似容斥,dp
3622: 已经没有什么好害怕的了 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1213 Solved: 576[Submit][Status][ ...
- BZOJ 3622 : 已经没有什么好害怕的了(dp + 广义容斥原理)
今天没听懂 h10 的讲课 但已经没有什么好害怕的了 题意 给你两个序列 \(a,b\) 每个序列共 \(n\) 个数 , 数之间两两不同 问 \(a\) 与 \(b\) 之间有多少配对方案 使得 \ ...
- BZOJ 3622: 已经没有什么好害怕的了 [容斥原理 DP]
3622: 已经没有什么好害怕的了 题意:和我签订契约,成为魔法少女吧 真·题意:零食魔女夏洛特的结界里有糖果a和药片b各n个,两两配对,a>b的配对比b>a的配对多k个学姐就可能获胜,求 ...
- [BZOJ 3622]已经没有什么好害怕的了
世萌萌王都拿到了,已经没有什么好害怕的了—— (作死) 笑看哪里都有学姐,真是不知说什么好喵~ 话说此题是不是输 0 能骗不少分啊,不然若学姐赢了,那么有头的学姐还能叫学姐吗? (作大死) 这 ...
- ●BZOJ 3622 已经没有什么好害怕的了
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3622 题解: 容斥,dp1).可以求出需要多少对"糖果>药片"(K ...
- BZOJ.5407.girls/CF985G. Team Players(三元环计数+容斥)
题面 传送门(bzoj) 传送门(CF) \(llx\)身边妹子成群,这天他需要从\(n\)个妹子中挑出\(3\)个出去浪,但是妹子之间会有冲突,表现为\(i,j\)之间连有一条边\((i,j)\), ...
- bzoj 3622 已经没有什么好害怕的了——二项式反演
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3622 令 f[i] 表示钦定 i 对 a[ ]>b[ ] 的关系的方案数:g[i] 表 ...
- 解题:BZOJ 3622 已经没有什么好害怕的了·
题面 用来学习二项式反演的题目 大于等于/小于等于 反演出 恰好等于 设前者为f(n),后者为g(n),则有$f(n)=\sum\limits_{i=0}^nC_n^ig(n)<->g(n ...
- BZOJ 3622: 已经没有什么好害怕的了(二项式反演)
传送门 解题思路 首先将\(a\),\(b\)排序,然后可以算出\(t(i)\),表示\(a(i)\)比多少个\(b(i)\)大,根据容斥套路,设\(f(k)\)表示恰好有\(k\)个\(a(i)\) ...
随机推荐
- Python3:input()输入函数的用法
Python3:input()输入函数的用法 一.简介 input这个函数,第一个参数是提示语,它默认是空的.在我们使用input的时候,会从标准输入中读取一个string,即字符串(请注意,这里很重 ...
- Apache 错误整理
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localho ...
- 0927-转载:SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释
这篇文章暂时只对框架中所要用到的配置文件进行解释说明,而且是针对注解形式的,框架运转的具体流程过两天再进行总结. spring+springmvc+mybatis框架中用到了三个XML配置文件:web ...
- JavaEE之动态代理
jdk动态代理主要使用的是java反射机制(既java.lang.reflect包) 动态代理:程序运行时,使用JDK提供工具类(Proxy),动态创建一个类,此类一般用于代理. 代理类需要实现Inv ...
- windows 环境下安装python MySQLdb
使用Python访问MySQL,需要一系列安装 Linux下MySQLdb安装见 Python MySQLdb在Linux下的快速安装 http://blog.csdn.NET/wklken/arti ...
- ASP.NET动态生成GridView的使用
根据DataTable动态生成包含checkbox的GridView,其中DataTable中对应checkbox那一列的值必须为bool值. public static GridView Dynam ...
- scala学习手记27 - 下划线与参数
在Scala里,下划线(_)可以表示函数值的参数.如果某个参数在函数里仅使用一次,就可以用下划线表示.每次在函数里用下划线,都表示随后的参数. val arr = Array(1, 2, 3, 4, ...
- scala学习手记4 - Java基本类型对应的scala类
在Java中变量类型分为两大类:基本类型和引用类型.虽然在JDK1.5以后引入了自动装箱和自动拆箱机制,大大减少了我们在直接类型和引用类型之间的纠结,但仍有一些我们不得不考虑的问题.比如我在工作遇到的 ...
- Java_WebKit_ZC01
1. 1.1. F:\ZC_chrome_download\java_svg\__Java_call_Qt\qtjambi-master\doc\src\snippets\application.xm ...
- php和java优势对比
PHP很专一,用于创建动态网页的服务器端的脚本语言.作为一种为Web而特别设计的语言,PHP带来了许多商业机构渴望的特性. ·学习周期短,比较简单 ·快速的开发时间 ·非常高的性能 这 ...