4742: [Usaco2016 Dec]Team Building

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 21  Solved: 16
[Submit][Status][Discuss]

Description

Every year, Farmer John brings his NN cows to compete for "best in show" at the state fair. His arch
-rival, Farmer Paul, brings his MM cows to compete as well (1≤N≤1000,1≤M≤1000).Each of the N+MN+
M cows at the event receive an individual integer score. However, the final competition this year wi
ll be determined based on teams of KK cows (1≤K≤10), as follows: Farmer John and Farmer Paul both 
select teams of KK of their respective cows to compete. The cows on these two teams are then paired 
off: the highest-scoring cow on FJ's team is paired with the highest-scoring cow on FP's team, the s
econd-highest-scoring cow on FJ's team is paired with the second-highest-scoring cow on FP's team, a
nd so on. FJ wins if in each of these pairs, his cow has the higher score.Please help FJ count the n
umber of different ways he and FP can choose their teams such that FJ will win the contest. That is,
 each distinct pair (set of KK cows for FJ, set of KK cows for FP) where FJ wins should be counted. 
Print your answer modulo 1,000,000,009.
每年农夫约翰都会带着他的N只牛去集会上参加“你是最棒哒“的比赛。他的对手农夫保罗也带了M只牛去参加比赛
(1 ≤ N ≤ 1000, 1 ≤ M ≤ 1000)。每只牛都有自己的分数。两人会选择K只牛组成队伍(1 ≤ K ≤ 10),两队
牛在按分数大小排序后一一配对,并且约翰打败保罗当且仅当对于每一对牛,约翰的牛分数都比保罗的高。请帮助
约翰计算约翰打败保罗的方案数 mod 1000000009。两种方案不同,当且仅当约翰或保罗选择的牛的集合与另一种
方案不同。
 

Input

The first line of input contains N, M, and K. The value of K will be no larger than N or M.
The next line contains the N scores of FJ's cows.
The final line contains the M scores of FP's cows.
 

Output

Print the number of ways FJ and FP can pick teams such that FJ wins, modulo 1,000,000,009.
 

Sample Input

10 10 3
1 2 2 6 6 7 8 9 14 17
1 3 8 10 10 16 16 18 19 19

Sample Output

382

HINT

 

Source

[Submit][Status][Discuss]

看到网上还没有人写题解,来抢百度的沙发好了(不知道抢的抢不上)。

就是一道水水的动态规划了:首先得给两个序列分别排个序,$f[i][j][k]$表示使用FJ的前i头牛,以及FP的前j头牛,组出k头牛的战斗序列的方案数。$f[i][j][k]$向$f[i+1][j][k]$和$f[i][j+1][k]$转移,分别代表不选择FJ的第i头牛以及不选择FP的第j头牛,$f[i][j][k]$向$f[i+1][j+1][k+1]$转移当且仅当FJ的第i+1头牛能胜过FP的第j+1头牛。发现$f[i+1][j][k]$和$f[i][j+1][k]$向$f[i+1][j+1][k]$都有转移,而事实上这两次转移的方案是一样的,简言之,算重了,咋办,减掉就好,所以$f[i+1][j+1][k]-=f[i][j][k]$。

 #include <cstdio>
#include <algorithm> inline int nextChar(void) {
const int siz = ; static char buf[siz];
static char *hd = buf + siz;
static char *tl = buf + siz; if (hd == tl)
fread(hd = buf, , siz, stdin); return *hd++;
} inline int nextInt(void) {
register int ret = ;
register int neg = false;
register int bit = nextChar(); for (; bit < ; bit = nextChar())
if (bit == '-')neg ^= true; for (; bit > ; bit = nextChar())
ret = ret * + bit - ; return neg ? -ret : ret;
} const int siz = ;
const int mod = ; int n, m, d; int a[siz];
int b[siz]; int f[siz][siz][]; inline void add(int &a, int b)
{
a += b; if (a >= mod)
a -= mod; if (a < )
a += mod;
} signed main(void)
{
n = nextInt();
m = nextInt();
d = nextInt(); for (int i = ; i <= n; ++i)
a[i] = nextInt(); for (int i = ; i <= m; ++i)
b[i] = nextInt(); std::sort(a + , a + + n);
std::sort(b + , b + + m); f[][][] = ; for (int i = ; i <= n; ++i)
for (int j = ; j <= m; ++j)
for (int k = ; k <= d; ++k)
if (f[i][j][k])
{
add(f[i + ][j][k], f[i][j][k]);
add(f[i][j + ][k], f[i][j][k]);
add(f[i + ][j + ][k], -f[i][j][k]); if (a[i + ] > b[j + ])
add(f[i + ][j + ][k + ], f[i][j][k]);
} printf("%d\n", f[n][m][d]);
}

@Author: YouSiki

BZOJ 4742: [Usaco2016 Dec]Team Building的更多相关文章

  1. BZOJ4742 : [Usaco2016 Dec]Team Building

    如果我们将两个人拥有的牛混在一起,并按照战斗力从小到大排序,同时把第一个人选的牛看成$)$,第二个人选的牛看成$($的话,那么我们会发现一个合法的方案对应了一个长度为$2k$的括号序列. 于是DP即可 ...

  2. bzoj 4747: [Usaco2016 Dec]Counting Haybales

    23333,在扒了一天题解之后发现我竟然还能秒题,虽然这是个pj的sb题... (排个序,然后upper_bound和lower_bound一用就行了(是不是有O(1)的查询方法啊??貌似要离散啊,一 ...

  3. BZOJ 4576: [Usaco2016 Open]262144

    Description 一个序列,每次可以将两个相同的数合成一个数,价值+1,求最后最大价值 \(n \leqslant 262144\) Sol DP. 这道题是 BZOJ 4580: [Usaco ...

  4. CF1316E Team Building

    CF1316E [Team Building] 状压dp,感觉比D简单 \(f[i][s]\),表示考虑前\(i\)个人,状态为\(s\)(\(s\)的第\(j-1\)个二进制位表示队员的第\(j\) ...

  5. BZOJ 1626: [Usaco2007 Dec]Building Roads 修建道路( MST )

    计算距离时平方爆了int结果就WA了一次...... ------------------------------------------------------------------------- ...

  6. bzoj 1626: [Usaco2007 Dec]Building Roads 修建道路 -- 最小生成树

    1626: [Usaco2007 Dec]Building Roads 修建道路 Time Limit: 5 Sec  Memory Limit: 64 MB Description Farmer J ...

  7. BZOJ 1626 [Usaco2007 Dec]Building Roads 修建道路:kruskal(最小生成树)

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1626 题意: 有n个农场,坐标为(x[i],y[i]). 有m条原先就修好的路,连接农场( ...

  8. BZOJ——1626: [Usaco2007 Dec]Building Roads 修建道路

    http://www.lydsy.com/JudgeOnline/problem.php?id=1626 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1 ...

  9. bzoj 1626: [Usaco2007 Dec]Building Roads 修建道路【最小生成树】

    先把已有的边并查集了,然后MST即可 记得开double #include<iostream> #include<cstdio> #include<algorithm&g ...

随机推荐

  1. JS高程5.引用类型(3)Array类型-检测数组

    1. instanceof操作符(ECMAScript3) 对于一个网页,或者是一个全局作用域而言,使用instanceof操作符来检测数组就可以得到满意的结果. 语法:if(value instan ...

  2. ArcGIS Engine开发前基础知识(1)

    ArcGIS二次开发是当前gis领域的一项重要必不可少的技能.下面介绍它的基本功能 一.ArcGIS Engine功能 在使用之前首先安装和部署arcgis sdk,(在这里不在赘述相关知识)可以实现 ...

  3. Golang Web开发时前端出现谜之空白换行的坑

    在使用Golang做Web开发时,有时候渲染出来的模板在前台显示时会出现一些奇怪的空白换行,具体特征就是查看css样式表并没有相关定义的空白部分. 分析: 查看出现问题页面的网页源代码,复制空白换行部 ...

  4. Unable to download data from http://ruby.taobao.org/ & don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

    安装cocoapods,记录两个问题! 1.镜像已经替换成了 http://ruby.taobao.org/, 还是不能不能安装cocoapods, 报错:Unable to download dat ...

  5. Activity的释放

    1.ActivityTwo.finish(); 在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法.当你调用此方法的时候,系统只是将最上面的Activity移出了栈, ...

  6. android 关闭多个或指定activity

    打开了.activityA,B,C,D,...然后到E一起关闭前面所有activity(转自:http://blog.csdn.net/lengguoxing/article/details/4214 ...

  7. Hibernate入门笔记

    相关基础概念请从其它教材简单了解,这里仅记录下第一个Hibernate程序的实现步骤. 环境说明: java开发工具:eclipse MARS.2 Release(4.5.2) hibernate版本 ...

  8. idea fect

    idea facet 昨天从svn检查一个项目后,部署至tomcat服务器,启动成功,但实际代码其实没有进去, 因为该项目不是maven项目, artifacats是自己配的, 应该是这里弄错的. 最 ...

  9. AC日记——蓬莱山辉夜 codevs 2830

    2830 蓬莱山辉夜  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 在幻想乡中,蓬莱山辉夜是月球 ...

  10. Webform:Session、Cookie对象的用法

    Session 优点:1.使用简单,不仅能传递简单数据类型,还能传递对象.  2.数据量大小是不限制的. 缺点:1.在Session变量存储大量的数据会消耗较多的服务器资源. 2.容易丢失. 使用方法 ...