BZOJ - 3622:已经没有什么好害怕的了 (广义容斥)
【BZOJ3622】已经没有什么好害怕的了
Description
Input
Output
Sample Input
5 35 15 45
40 20 10 30
Sample Output
HINT
输入的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)\) ...
随机推荐
- Mac 一键显示所有隐藏文件 不要那么六好吧
系统应简洁而有效,对一般用户来说这一点尤为重要.不必要让普通用户知道的信息往往会给他们造成困扰,因而,隐藏掉他们便是个不错的选择,既可以保证系统平稳流畅运行,也可以为用户提供友好界面. 对于开发者而言 ...
- Oracle数据安全(四)j角色管理
一.角色管理的概述 1.角色的概念 为了简化数据库权限的管理,在Oracle数据库中引入了角色的概念.所谓的角色就是一系列相关权限的集合. 2.角色的特点 在数据库中,角色的名称必须是唯一的,不能与用 ...
- Django---自定义admin组件思维导图
- Mybatis中的ParameterType
mybatis可以传入的参数类型1.基本数据类型 可以通过#{参数名}直接获取.每次只能传入一个值 <select id="selectTeacher" ...
- html4与html5的区别
一.HTML5更加灵活,支持下列多种形式 1.标签名可以大写(不推荐) -<SpAN>这个HTML5也的认</SpAN> 2.属性双引号可选(推荐添加双引号) -<div ...
- golang解析json报错:invalid character '\x00' after top-level value
golang解析json报错:invalid character '\x00' after top-level value 手动复制字符串:{"files":["c:/t ...
- powerdesigner 左边的列表框弄不见了怎么弄出来
快捷键 Alt + 0(数字零) 或者点击下面图片的 红色标识位置.就出来了.
- hdu 5777 domino 贪心
domino Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Problem ...
- 《JavaScript高级程序设计》第6章补充 继承
基于原型链继承 将父类的实例赋给子类的prototype来实现继承. 原理:父类的实例有父类所有的实例属性和原型方法,将它赋给子类的prototype后,子类的创建的实例就有会__proto__属性指 ...
- Selenium with Python 006 - 操作浏览器
#!/usr/bin/env python # -*- coding: utf-8 -*- from selenium import webdriver import time driver = we ...