题面

用来学习二项式反演的题目

大于等于/小于等于 反演出 恰好等于

设前者为f(n),后者为g(n),则有$f(n)=\sum\limits_{i=0}^nC_n^ig(n)<->g(n)=\sum\limits_{i=0}^n(-1)^iC_n^if(i)$

这里我们$n^2$地dp求出$f(i)$表示a>b的组数大于等于i的方案数然后套二项式反演即可。设$dp[i][j]$表示前i个物品产生了j组a>b的配对的方案数,那么$dp[i][j]=dp[i-1][j]+(lst-j+1)*dp[i-1[j-1]$,其中lst表示b中小于a_i的数的数目,最后$f(i)=dp[n][i]*(n-i)!$。

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=,mod=1e9+;
int n,m,ans,a[N],b[N],lst[N];
int f[N],g[N],fac[N],inv[N],dp[N][N];
void Add(int &x,int y)
{
x+=y;
if(x<) x+=mod;
else if(x>=mod) x-=mod;
}
int Qpow(int x,int k)
{
if(k==) return x;
int tmp=Qpow(x,k/);
return k%?1ll*tmp*tmp%mod*x%mod:1ll*tmp*tmp%mod;
}
int C(int a,int b)
{
return 1ll*fac[a]*inv[b]%mod*inv[a-b]%mod;
}
void Pre()
{
fac[]=inv[]=,m=(n+m)/;
for(int i=;i<=;i++) fac[i]=1ll*fac[i-]*i%mod;
inv[]=Qpow(fac[],mod-);
for(int i=;i;i--) inv[i]=1ll*inv[i+]*(i+)%mod;
}
int main()
{
scanf("%d%d",&n,&m),Pre();
for(int i=;i<=n;i++) scanf("%d",&a[i]);
for(int i=;i<=n;i++) scanf("%d",&b[i]);
sort(a+,a++n),sort(b+,b++n),dp[][]=;
for(int i=;i<=n;i++) lst[i]=lower_bound(b+,b++n,a[i])-b-;
for(int i=;i<=n;i++)
{
dp[i][]=dp[i-][];
for(int j=;j<=n;j++)
dp[i][j]=(dp[i-][j]+1ll*max(,lst[i]-j+)*dp[i-][j-]%mod)%mod;
}
for(int i=;i<=n;i++) g[i]=1ll*dp[n][i]*fac[n-i]%mod;
for(int i=m;i<=n;i++)
Add(ans,(((i-m)&)?-1ll:1ll)*C(i,m)*g[i]%mod);
printf("%d",ans);
return ;
}

解题:BZOJ 3622 已经没有什么好害怕的了·的更多相关文章

  1. BZOJ 3622: 已经没有什么好害怕的了 [容斥原理 DP]

    3622: 已经没有什么好害怕的了 题意:和我签订契约,成为魔法少女吧 真·题意:零食魔女夏洛特的结界里有糖果a和药片b各n个,两两配对,a>b的配对比b>a的配对多k个学姐就可能获胜,求 ...

  2. bzoj 3622 已经没有什么好害怕的了 类似容斥,dp

    3622: 已经没有什么好害怕的了 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1213  Solved: 576[Submit][Status][ ...

  3. BZOJ 3622 : 已经没有什么好害怕的了(dp + 广义容斥原理)

    今天没听懂 h10 的讲课 但已经没有什么好害怕的了 题意 给你两个序列 \(a,b\) 每个序列共 \(n\) 个数 , 数之间两两不同 问 \(a\) 与 \(b\) 之间有多少配对方案 使得 \ ...

  4. [BZOJ 3622]已经没有什么好害怕的了

    世萌萌王都拿到了,已经没有什么好害怕的了——    (作死) 笑看哪里都有学姐,真是不知说什么好喵~ 话说此题是不是输 0 能骗不少分啊,不然若学姐赢了,那么有头的学姐还能叫学姐吗?  (作大死) 这 ...

  5. ●BZOJ 3622 已经没有什么好害怕的了

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3622 题解: 容斥,dp1).可以求出需要多少对"糖果>药片"(K ...

  6. bzoj 3622 已经没有什么好害怕的了——二项式反演

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3622 令 f[i] 表示钦定 i 对 a[ ]>b[ ] 的关系的方案数:g[i] 表 ...

  7. BZOJ 3622: 已经没有什么好害怕的了(二项式反演)

    传送门 解题思路 首先将\(a\),\(b\)排序,然后可以算出\(t(i)\),表示\(a(i)\)比多少个\(b(i)\)大,根据容斥套路,设\(f(k)\)表示恰好有\(k\)个\(a(i)\) ...

  8. 【BZOJ 3622】3622: 已经没有什么好害怕的了(DP+容斥原理)

    3622: 已经没有什么好害怕的了 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 683  Solved: 328 Description Input ...

  9. bzoj 3622 DP + 容斥

    LINK 题意:给出n,k,有a,b两种值,a和b间互相配对,求$a>b$的配对组数-b>a的配对组数恰好等于k的情况有多少种. 思路:粗看会想这是道容斥组合题,但关键在于如何得到每个a[ ...

随机推荐

  1. Python基础(list和tuple)可变集合和‘不可变’集合

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  2. mfc CListBox

    通过ID操作对象 CListBox(列表框)控件 CListBox类常用成员 CListBox插入数据 CListBox删除数据 CListBox运用示例 一.CListBox类常用成员 CListB ...

  3. CodeForces-1155D Beautiful Array

    Description You are given an array \(a\) consisting of \(n\) integers. Beauty of array is the maximu ...

  4. 洛咕3312 [SDOI2014]数表

    洛咕3312 [SDOI2014]数表 终于独立写出一道题了...真tm开心(还是先写完题解在写的) 先无视a的限制,设\(f[i]\)表示i的约数之和 不妨设\(n<m\) \(Ans=\su ...

  5. [LOJ#6066]. 「2017 山东一轮集训 Day3」第二题[二分+括号序列+hash]

    题意 题目链接 分析 首先二分,假设二分的答案为 \(mid\),然后考虑利用括号序列来表示树的形态. 点 \(u\) 的 \(k-\) 子树的括号序列表示实际上是刨去了 \(u\) 子树内若干个与 ...

  6. [CF1039D]You Are Given a Tree[贪心+根号分治]

    题意 给你\(n\)个点的树,其中一个简单路径的集合被称为\(k\)合法当且仅当树的每个节点最多属于一条路径,且每条路径包含\(k\)个节点.对于每个\(k(k \in [1,n])\),输出最多的\ ...

  7. 重置Oracle配置

    经常被ORACLE坑,作为一个只需要开发时候连连ORACLE的程序员,在经历了一次又一次的折腾之后,决定还是把这些琐碎的事情写下来. 经常在虚拟机中使用ORACLE,ORACLE的网络配置有一些变化就 ...

  8. Synchronous/Asynchronous:任务的同步异步,以及asynchronous callback异步回调

    两个线程执行任务有同步和异步之分,看了Quora上的一些问答有了更深的认识. When you execute something synchronously, you wait for it to ...

  9. Android 实现 WheelView

    wheel view 目录(?)[-] Android WheelView效果图 网上的开源代码 实现思路 扩展Gallery 如何使用 我们都知道,在iOS里面有一种控件------滚筒控件(Whe ...

  10. 图-图的表示、搜索算法及其Java实现

    1.图的表示方法 图:G=(V,E),V代表节点,E代表边. 图有两种表示方法:邻接链表和邻接矩阵 邻接链表因为在表示稀疏图(边的条数|E|远远小于|V|²的图)时非常紧凑而成为通常的选择. 如果需要 ...