【BZOJ3622】已经没有什么好害怕的了 动态规划+容斥原理
来源:互联网 发布:tl wn725n mac驱动 编辑:程序博客网 时间:2024/05/01 11:04
链接:
#include <stdio.h>int main(){ puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/44836095");}
题解:
首先我们给
然后枚举到
其中
而后面的乘数则是它有
之后进行容斥原理,设
我们发现对于一个
然后我们要从中减去不符合要求的,也就是其中有
那么显然式子应该是这样的:
然后我们考虑应该有多少对
呃,设有
然后
代码:
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define N 2050#define inf 0x3f3f3f3f#define mod 1000000009using namespace std;int a[N],b[N],n,m;long long fac[N],C[N][N],f[N][N];int main(){ freopen("test.in","r",stdin); int i,j,k; scanf("%d%d",&n,&m); if(n+m&1){puts("0");return 0;} m=n+m>>1; for(i=1;i<=n;i++)scanf("%d",&a[i]); for(i=1;i<=n;i++)scanf("%d",&b[i]); sort(a+1,a+n+1),sort(b+1,b+n+1); for(k=0,f[0][0]=i=1;i<=n;i++) { while(k<n&&b[k+1]<a[i])k++; for(f[i][0]=j=1;j<=i;j++) f[i][j]=(f[i-1][j]+f[i-1][j-1]*max(k-(j-1),0))%mod; } for(fac[0]=i=1;i<=n;i++)fac[i]=fac[i-1]*i%mod; for(i=0;i<=n;i++) { C[i][0]=1; for(j=1;j<=i;j++)C[i][j]=(C[i-1][j]+C[i-1][j-1])%mod; } for(i=n;i>=m;i--) { f[n][i]=f[n][i]*fac[n-i]%mod; for(j=i+1;j<=n;j++) { f[n][i]-=f[n][j]*C[j][i]%mod; f[n][i]=(f[n][i]+mod)%mod; } } cout<<f[n][m]<<endl; return 0;}
1 0
- 【BZOJ3622】已经没有什么好害怕的了 动态规划+容斥原理
- [DP 容斥原理] BZOJ3622 已经没有什么好害怕的了 && BZOJ 2024 [SHOI2009] 舞会
- [BZOJ3622]已经没有什么好害怕的了(dp+容斥原理+组合数学)
- [BZOJ3622]已经没有什么好害怕的了(容斥原理+DP)
- BZOJ 3622 已经没有什么好害怕的了 动态规划+容斥原理
- 【BZOJ3622】已经没有什么好害怕的了
- [bzoj3622]已经没有什么好害怕的了
- 【BZOJ3622】已经没有什么好害怕的了,两次DP
- BZOJ3622 已经没有什么好害怕的了
- BZOJ3622: 已经没有什么好害怕的了 解题报告
- BZOJ3622: 已经没有什么好害怕的了 DP
- BZOJ3622: 已经没有什么好害怕的了
- BZOJ 3622(已经没有什么好害怕的了-Dp+容斥原理)
- bzoj 3622: 已经没有什么好害怕的了 (容斥原理+DP)
- BZOJ 3622 已经没有什么好害怕的了 DP 容斥原理
- bzoj 3622: 已经没有什么好害怕的了 dp+容斥原理
- 【BZOJ3622】已经没有什么好害怕的了【计数DP】【姿势】
- 已经没有什么好害怕的了
- 两分钟彻底让你明白Android中onInterceptTouchEvent与onTouchEvent(图文)! 分类: Android基础教程
- gtest(Google Test)使用
- Raphael学习之渐变圆和过度动画(六)
- SQL索引一步到位
- NSString+Check, iOS 判断手机号码格式是否正确
- 【BZOJ3622】已经没有什么好害怕的了 动态规划+容斥原理
- 关于3.0屏幕适配的一小点归纳
- Min Stack
- OA的学习--第七天的内容--论坛模块
- 第二张第四题
- Unity Mathf 数学运算(C#)
- [Unity3D]Script 脚本所有编译器属性详解
- C语言的那些秘密之---函数返回局部变量
- C++学习心得