【BZOJ 3622】3622: 已经没有什么好害怕的了(DP+容斥原理)
3622: 已经没有什么好害怕的了
Time Limit: 10 Sec Memory Limit: 256 MB
Submit: 683 Solved: 328Description
Input
Output
Sample Input
4 2
5 35 15 45
40 20 10 30Sample Output
4HINT
输入的2*n个数字保证全不相同。
还有输入应该是第二行是糖果,第三行是药片Source
【分析】
もう何も怖くない
首先n+k为奇特判无解。
然后知道要选多少组ai>bj的
然后就选吧。
先两个都排一遍序
$f[i][j]$表示选了a的前$i$组后有$j$组$ai>bj$的,的方案数。
这个很简单好吗!!(我昨天晚上看这题时候绝对脑抽)
$f[i][j]=f[i-1][j]+f[i-1][j-1]*(mx[i]-j+1)$ 剩下的先不用管,后面乱排乘一个阶乘
$mx[i]$表示最多前$mx[i]$个$b$数组小于$a[i]$
但是!!不能保证刚好就等于你要的组数,可能大于它。于是容斥大法就来了。
$dp[i]=f[n][i]*(n-i)!-dp[j]*C[j][i] (j>i)$
组合数也递推就好了。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define Maxn 2010
#define Mod 1000000009
#define LL long long LL mymax(LL x,LL y) {return x>y?x:y;} LL a[Maxn],b[Maxn],f[Maxn][Maxn],mx[Maxn],dp[Maxn],p[Maxn];
LL c[Maxn][Maxn]; int main()
{
LL n,k;
scanf("%lld%lld",&n,&k);
if((n+k)&) printf("0\n");
else
{
k=(n+k)/;
for(LL i=;i<=n;i++) scanf("%lld",&a[i]);
for(LL i=;i<=n;i++) scanf("%lld",&b[i]);
sort(a+,a++n);
sort(b+,b++n);
LL st=;
for(LL i=;i<=n;i++)
{
while(a[i]>b[st+]&&st<n) st++;
mx[i]=st;
}
memset(f,,sizeof(f));
for(int i=;i<=n;i++) f[i][]=;
for(LL i=;i<=n;i++)
for(LL j=;j<=i;j++)
{
f[i][j]=(f[i-][j]+f[i-][j-]*mymax(mx[i]-j+,))%Mod;
}
for(LL i=;i<=n;i++) c[i][]=;
for(LL i=;i<=n;i++)
for(LL j=;j<=i;j++)
{
c[i][j]=(c[i-][j]+c[i-][j-])%Mod;
}
p[]=;
for(LL i=;i<=n;i++) p[i]=(p[i-]*i)%Mod;
for(LL i=n;i>=k;i--)
{
dp[i]=(f[n][i]*p[n-i])%Mod;
for(LL j=i+;j<=n;j++)
{
dp[i]=dp[i]-c[j][i]*dp[j];
dp[i]=(dp[i]%Mod+Mod)%Mod;
}
}
printf("%lld\n",dp[k]);
}
return ;
}
もう何も怖くない(呵呵
2017-04-06 14:16:58
【BZOJ 3622】3622: 已经没有什么好害怕的了(DP+容斥原理)的更多相关文章
- [BZOJ 4455] [ZJOI 2016] 小星星 (树形dp+容斥原理+状态压缩)
[BZOJ 4455] [ZJOI 2016] 小星星 (树形dp+容斥原理+状态压缩) 题面 给出一棵树和一个图,点数均为n,问有多少种方法把树的节点标号,使得对于树上的任意两个节点u,v,若树上u ...
- BZOJ 3622 : 已经没有什么好害怕的了(dp + 广义容斥原理)
今天没听懂 h10 的讲课 但已经没有什么好害怕的了 题意 给你两个序列 \(a,b\) 每个序列共 \(n\) 个数 , 数之间两两不同 问 \(a\) 与 \(b\) 之间有多少配对方案 使得 \ ...
- BZOJ - 3622:已经没有什么好害怕的了 (广义容斥)
[BZOJ3622]已经没有什么好害怕的了 Description Input Output Sample Input 4 2 5 35 15 45 40 20 10 30 Sample Output ...
- 【bzoj 3622】已经没有什么好害怕的了
题目 看到这个数据范围就发现我们需要一个\(O(n^2)\)的做法了,那大概率是\(dp\)了 看到恰好\(k\)个我们就知道这基本是个容斥了 首先解方程发现我们需要使得\(a>b\)的恰好有\ ...
- BZOJ - Problem 3622 - 已经没有什么好害怕的了
题意: 给定两个序列$a$和$b$,让它们进行匹配,求出使得$a_i > b_j$的个数比$a_i < b_j$的个数恰好多$k$,求这样的匹配方法数 题解: 这题的各种表示有一点相似又截 ...
- bzoj3622已经没有什么好害怕的了 dp+组合+容斥(?)
3622: 已经没有什么好害怕的了 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1033 Solved: 480[Submit][Status][ ...
- [BZOJ 1879][SDOI 2009]Bill的挑战 题解(状压DP)
[BZOJ 1879][SDOI 2009]Bill的挑战 Description Solution 1.考虑状压的方式. 方案1:如果我们把每一个字符串压起来,用一个布尔数组表示与每一个字母的匹配关 ...
- [BZOJ 4350]括号序列再战猪猪侠 题解(区间DP)
[BZOJ 4350]括号序列再战猪猪侠 Description 括号序列与猪猪侠又大战了起来. 众所周知,括号序列是一个只有(和)组成的序列,我们称一个括号 序列S合法,当且仅当: 1.( )是一个 ...
- BZOJ 2806 Luogu P4022 [CTSC2012]Cheat (广义后缀自动机、DP、二分、单调队列)
题目链接: (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=2806 (luogu) https://www.luogu.org/pro ...
随机推荐
- php发送get和post请求
1. Get方式实现 //初始化 $ch = curl_init(); //设置选项,包括URL curl_setopt($ch, CURLOPT_URL, "http://www.abc. ...
- Centos7系统环境下Solr之Java实战(一)搭建solr服务器
搭建步骤 1.分别上传tomcat.sorl到指定文件夹并解压 2.把solr部署到Tomcat下 通过命令 cp apache-tomcat-7.0.47 /usr/local/sorl/tomca ...
- [linux]codeblocks开发mysql配置
1.在安装好mysql后,可以应该安装必要的库文件 $sudo apt-get install libmysqlclient-dev 2.将codeblocks与mysql的库文件连接起来 在code ...
- Spring websocket浏览器连接时出现404错误
1.场景 在用websocket做一个简单的数据导入页面同步显示后台进度功能的时候,浏览器出现连接不上的错误: WebSocket connection to 'ws://localhost:8080 ...
- [网站安全] [实战分享]WEB漏洞挖掘的一些经验分享
WEB漏洞有很多种,比如SQL注入,比如XSS,比如文件包含,比如越权访问查看,比如目录遍历等等等等,漏洞带来的危害有很多,信息泄露,文件上传到GETSHELL,一直到内网渗透,这里我想分享的最主要的 ...
- bootstrap分页查询传递中文参数到后台(get方式提交)
<!--分页 --> <div style="width: 380px; margin: 0 auto; margin-top: 50px;"> <u ...
- HTML表单属性与全局属性
1.全局属性
- C++之模板编程
当我们越来越多的使用C++的特性, 将越来越多的问题和事物抽象成对象时, 我们不难发现:很多对象都具有共性. 比如 数值可以增加.减少:字符串也可以增加减少. 它们的动作是相似的, 只是对象的类型不同 ...
- PHP 快速建立一个对象
前言 PHP 中的数组(尤其关联数组)是经常使用的 —— 因为方便.在一些框架中也经常见到返回数组格式的配置参数.然而有些时候可能需要对象而非数组类型的配置参数,在查阅网络资料后找到了方法,作以记录. ...
- [ python ] 面向对象 - 选课系统
根据源程序进行改写: 原程序地址:http://www.cnblogs.com/lianzhilei/p/5985333.html 如有侵权立即删除. 感谢原作者将完整的代码提供参考. ...
.jpg)
.jpg)
.jpg)
.jpg)