RQNOJ PID192 梦幻大PK [2017年6月计划 二分图02]

PID192 / 梦幻大PK ☆

你还木有做过哦

我的状态

查看最后一次评测记录

质量 7

题目评价

质量

7

★★★★★

★★★★☆

★★★☆☆

★★☆☆☆

★☆☆☆☆

50%

0%

25%

0%

25%

通过人数 754 / 2273

通过统计

最短耗时

0ms

最小内存

0KB

匹配

题目标签

类型

匹配

题目描述

难得到了生日,正逢上班里面一年一度的梦幻大PK,分2组对拼。但是由于某种原因,参加PK的第1组中有些人不能和第2组人PK。可能 是因为等级、互克、相生等关系。于是,南瓜(为鄙班中队长 and 团支书)想要确定最多要多少次PK。十分惋惜,因为鄙人的大名在学校大黑板上挂了2个月(就是全国1=而已拉)了。于是就来 found 鄙人。但是鄙人正准备着自己的生日,于是只好把这个难题交付各位OIers了。十分遗憾,南瓜小姐的统计上有点问题,使问题变的复杂了点。(2组人数相 同)

输入格式

第1行,一个数,N。

接下来N行,其中第i行第1个数M,表示第1组第i个人不能和第2组的M个人PK。然后M个数,表示第1组第i个人与第2组哪M个人不能PK。(注:这M个数或许会有重复)。

数据范围:0<=M<N<=1000。其他输入的数不超过1000。

输出格式

一个数,表示最多能举行多少场PK。

样例输入 4
2 2 4
2 1 3
3 1 2 4
3 2 3 4

样例输出 3

 

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstdlib>
 4 #include <cstring>
 5 #include <algorithm>
 6 inline void read(int &x){x = 0;char ch = getchar();char c = ch;while(ch > ‘9‘ || ch < ‘0‘)c = ch, ch = getchar();while(ch <= ‘9‘ && ch >= ‘0‘)x = x * 10 + ch - ‘0‘, ch = getchar();if(c == ‘-‘)x = -x;}
 7 const int MAXN = 2000 + 10;
 8
 9 int n;
10 int g[MAXN][MAXN],by[MAXN],lk[MAXN];
11 int ans;
12
13 int find(int v)
14 {
15     for(register int i = 1;i <= n;++ i)
16     {
17         if(!by[i] && (!g[v][i]))
18         {
19             by[i] = 1;
20             if((!lk[i]) || find(lk[i]))
21             {
22                 lk[i] = v;
23                 return 1;
24             }
25         }
26     }
27     return 0;
28 }
29
30 int main()
31 {
32     read(n);
33     register int m, tmp;
34     for(register int i = 1;i <= n;++ i)
35     {
36         read(m);
37         for(register int j = 1;j <= m;++ j)
38         {
39             read(tmp);
40             g[i][tmp] = 1;
41         }
42     }
43     for(register int i = 1;i <= n;++ i)
44     {
45         memset(by, 0, sizeof(by));
46         if(find(i))ans ++;
47     }
48     printf("%d", ans);
49     return 0;
50 }

时间: 2024-09-29 22:12:43

RQNOJ PID192 梦幻大PK [2017年6月计划 二分图02]的相关文章

洛谷P1029 最大公约数和最小公倍数问题 [2017年6月计划 数论02]

P1029 最大公约数和最小公倍数问题 题目描述 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1.P,Q是正整数 2.要求P,Q以x0为最大公约数,以y0为最小公倍数. 试求:满足条件的所有可能的两个正整数的个数. 输入输出格式 输入格式: 二个正整数x0,y0 输出格式: 一个数,表示求出满足条件的P,Q的个数 输入输出样例 输入样例#1: 3 60 输出样例#1: 4 说明 P,Q有4种 3 60

RQNOJ192 梦幻大PK

题意:有n个人,每个不能和 m[i] 个PK,并知道是哪 m[i] 个,求最大PK数. 题解:核心算法 -> 匈牙利算法 CODE: /* Author: JDD PROG: rqnoj192 梦幻大PK DATE: 2015.9.28 */ #include <cstdio> #include <cstring> #define REP(i, s, n) for(int i = s; i <= n; i ++) #define REP_(i, s, n) for(in

洛谷P2723 丑数 Humble Numbers [2017年 6月计划 数论07]

P2723 丑数 Humble Numbers 题目背景 对于一给定的素数集合 S = {p1, p2, ..., pK},考虑一个正整数集合,该集合中任一元素的质因数全部属于S.这个正整数集合包括,p1.p1*p2.p1*p1.p1*p2*p3...(还有其 它).该集合被称为S集合的“丑数集合”.注意:我们认为1不是一个丑数. 题目描述 你的工作是对于输入的集合S去寻找“丑数集合”中的第N个“丑数”.所有答案可以用longint(32位整数)存储. 补充:丑数集合中每个数从小到大排列,每个丑

洛谷P1978 集合 [2017年6月计划 数论08]

P1978 集合 题目描述 集合是数学中的一个概念,用通俗的话来讲就是:一大堆数在一起就构成了集合.集合有如 下的特性: •无序性:任一个集合中,每个元素的地位都是相同的,元素之间是无序的. •互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次. •确定性:给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居 其一,不允许有模棱两可的情况出现. 例如 A = {1, 2, 3} 就是一个集合.我们可以知道, 1 属于 A ,即 1 ∈ A : 4 不属于 A

洛谷P1062 数列 [2017年6月计划 数论03]

P1062 数列 题目描述 给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是: 1,3,4,9,10,12,13,… (该序列实际上就是:3^0,3^1,3^0+3^1,3^2,3^0+3^2,3^1+3^2,3^0+3^1+3^2,…) 请你求出这个序列的第N项的值(用10进制数表示). 例如,对于k=3,N=100,正确答案应该是981. 输入输出格式 输入格式: 输入文件只有1行,为2个正整数,用一个空格隔开

【洛谷】P2073 送花 [2017年6月计划 线段树01]

P2073 送花 题目背景 小明准备给小红送一束花,以表达他对小红的爱意.他在花店看中了一些花,准备用它们包成花束. 题目描述 这些花都很漂亮,每朵花有一个美丽值W,价格为C. 小明一开始有一个空的花束,他不断地向里面添加花.他有以下几种操作: 操作 含义 1 W C 添加一朵美丽值为W,价格为C的花. 3 小明觉得当前花束中最便宜的一朵花太廉价,不适合送给小红,所以删除最便宜的一朵花. 2 小明觉得当前花束中最贵的一朵花太贵,他心疼自己的钱,所以删除最贵的一朵花. -1 完成添加与删除,开始包

2017年7月计划

6月的最后一天,我完成了六月计划,打卡 7月07日~14日将在郑州河南省实验度过 7月15日~22日将在济南清北学堂度过 7月25日~8月2日将在日照一中度过 8月05日~11日将在青岛二中度过 于是...定下如下计划: 1.动态规划百题斩开启  难度在提高及以上.100道题, 包括: 状压DP                                    15道 区间DP                                    10道 树上DP 10道 数位DP 10道

【巨坑】 二分图学习笔记 [2017年6月计划 学习二分图]

1.二分图:    ①把一个图的点集划为两个不相交的集合U,V,使得每一条边都连接U,V中的节点. ②(等价定义,更方便看)不含边数为奇数的环的图 2.匹配(matching): 边集,每一条边所连顶点互不相同 3.最大匹配: 所含边数最大的匹配 4.完美匹配: 所有顶点都被匹配,完美匹配一定是最大匹配. 5.交替路: 从一个非匹配点出发,依次走非匹配边,匹配边,非匹配边....交替走,形成交替路 6.增广路: 从一个非匹配点出发,走交替路,经过另一个非匹配点,则这条路径叫做增广路   增广路特

【计划】2017年5月计划

由于上次计划制定时已经是月中了,弄得有点多,削减了一点. 从清北回来,最后一次借着众dalao意外失利,我接近AK了(有一个数据点有点小问题,拿了290分),小激动,愈发砥砺前行. 1.完成四月计划(5.11日) 2.清北学堂Day1题目(18日) 3.清北学堂Day2题目(25日) 4.清北学堂Day3题目(30日) 嗯..总之先这样 还剩Day4和Day5,争取下次去清北前搞完吧 Day6一天可完,上午数论,下午AK(逃)  DayNOIP原题,打算以后抽个时间集中做一下 就这样.