不是匹配
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
2
-
描述
-
有N个人,N个活动, 每个人只会对2个或者3个活动感兴趣,每个活动也只有两个人或者两个活动对它兴趣,每个人参加一个感兴趣的活动需要一天 ,且当天该活动被参加时,其他的人不能参加如果每个人都参加完自己有兴趣的活动,应当怎样安排使得所用总天数时间最短2<= N <=1000, 1<=m<=1000;
-
输入
-
一个数T 表示T 组数据
每组一个N表示人数,编号1 -- N , 一个数 m ,接下来m 行每个两个数
x,y, 表示第 x 个人对第y个活动感兴趣
输出
- 每组输出一个整数,表示最少天数 样例输入
-
1 3 6 1 1 1 2 2 2 2 3 3 1 3 3
样例输出
-
2
这道题应该是签到题,考思维的,然而看着别人不停地ac,本渣渣却想了半天,敲了半天,一直wa.....智商啊!!
01.
#include<cstdio>
02.
#include<cstring>
03.
#include<algorithm>
04.
using
namespace
std;
05.
int
a[1103];
//每个同学喜欢的活动个数
06.
int
b[1103];
//该活动被多少人喜欢
07.
bool
cmp(
int
x,
int
y)
08.
{
09.
return
x>y;
10.
}
11.
int
main()
12.
{
13.
int
n,m,x,y;
14.
int
t;
15.
scanf
(
"%d"
,&t);
16.
while
(t--)
17.
{
18.
memset
(a,0,
sizeof
(a));
19.
memset
(b,0,
sizeof
(b));
20.
scanf
(
"%d%d"
,&n,&m);
21.
while
(m--)
22.
{
23.
scanf
(
"%d%d"
,&x,&y);
24.
a[x]++;
25.
b[y]++;
26.
}
27.
sort(a,a+1103,cmp);
28.
sort(b,b+1103,cmp);
29.
int
ans=max(a[0],b[0]);
30.
printf
(
"%d\n"
,ans);
31.
}
32.
return
0;
33.
}
-
一个数T 表示T 组数据