UOJ Logo

NOI.AC

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#205497#3657. 二分图OccDreamer100328ms9616kbC++111.7kb2024-07-07 12:18:132024-07-07 13:19:52

answer

//Emissary
#include<bits/stdc++.h>

#define vc vector
#define db double
#define fi first
#define se second
#define ll long long
#define mk make_pair
#define pb push_back
#define RI register int
#define PI pair<int,int>
#define ull unsigned long long
#define err cerr << "   -_-   " << endl
#define debug cerr << " ------------------- " << endl

#define input(x) freopen(#x".in","r",stdin)
#define output(x) freopen(#x".out","w",stdout)

#define NO puts("No")
#define YES puts("Yes")

//#define OccDreamer
//#define int long long

using namespace std;

namespace IO{
	inline int read(){
		int X=0, W=0; char ch=getchar();
		while(!isdigit(ch)) W|=ch=='-', ch=getchar();
		while(isdigit(ch)) X=(X<<1)+(X<<3)+(ch^48), ch=getchar();
		return W?-X:X;
	}
	inline void write(int x){
		if(x<0) x=-x, putchar('-');
		if(x>9) write(x/10);
		putchar(x%10+'0');
	}
	inline void sprint(int x){write(x), putchar(32);}
	inline void eprint(int x){write(x), putchar(10);}
}using namespace IO;

const int MAXN = 1e6+5;
const int mod = 998244353;

int deg[MAXN];
int n, a, b, m, s0, s1;
int head[MAXN], ne[MAXN<<1], to[MAXN<<1], cnt;

bool vis[MAXN];

inline void add(int x, int y){++cnt;to[cnt]=y;ne[cnt]=head[x];head[x]=cnt;}

inline void dfs(int x){
	vis[x]=1; s0+=x<=a && deg[x]%2==1; s1+=x>a && deg[x]%2==1;
	for(int i=head[x];i;i=ne[i]) if(!vis[to[i]]) dfs(to[i]);
	return ;
}
	
signed main(){
	a=read(), b=read(), m=read();
	for(int i=1;i<=m;++i){
		int x, y;
		x=read(), y=read()+a;
		add(x,y); add(y,x); deg[x]++; deg[y]++;
	}
	int ans=0;
	for(int i=1;i<=a+b;++i){
		if(deg[i]&1)
			ans++;
	}
	for(int i=1;i<=a+b;++i){
		if(vis[i]) continue;
		s0=0; s1=0; dfs(i);	ans-=min(s0,s1);
	}
	eprint(ans);
	return 0;
}

Details

小提示:点击横条可展开更详细的信息

Test #1:

score: 10
Accepted
time: 0ms
memory: 1140kb

input:

3 3 6
3 1
1 2
2 2
3 3
3 2
1 1

output:

2

result:

ok single line: '2'

Test #2:

score: 10
Accepted
time: 0ms
memory: 1144kb

input:

3 3 6
2 3
1 3
1 1
3 1
2 2
1 2

output:

2

result:

ok single line: '2'

Test #3:

score: 10
Accepted
time: 0ms
memory: 1140kb

input:

5 5 10
2 2
3 5
2 1
5 1
4 3
5 5
4 1
2 5
4 4
1 3

output:

4

result:

ok single line: '4'

Test #4:

score: 10
Accepted
time: 0ms
memory: 1144kb

input:

5 5 10
1 3
2 2
4 1
1 5
3 3
2 5
5 3
5 5
1 4
3 2

output:

4

result:

ok single line: '4'

Test #5:

score: 10
Accepted
time: 4ms
memory: 2060kb

input:

114 515 58710
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
...

output:

114

result:

ok single line: '114'

Test #6:

score: 10
Accepted
time: 4ms
memory: 2064kb

input:

115 515 59225
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
...

output:

515

result:

ok single line: '515'

Test #7:

score: 10
Accepted
time: 92ms
memory: 9532kb

input:

68944 65538 457334
28574 3442
25145 16846
3908 4208
1458 23374
6977 13895
15623 10242
5458 32462
147...

output:

16390

result:

ok single line: '16390'

Test #8:

score: 10
Accepted
time: 67ms
memory: 9524kb

input:

80715 54106 456937
6635 12392
6993 23015
16612 416
1154 31247
30337 8910
20012 15283
25326 8635
3175...

output:

16501

result:

ok single line: '16501'

Test #9:

score: 10
Accepted
time: 83ms
memory: 9616kb

input:

54914 55025 464166
7197 327
19912 4344
14147 30464
22874 24904
16761 27174
16591 1399
28037 9082
180...

output:

16416

result:

ok single line: '16416'

Test #10:

score: 10
Accepted
time: 78ms
memory: 9512kb

input:

80584 52252 456351
32761 6996
21358 22163
11514 9134
17800 13069
629 22725
8945 19723
9490 2413
2233...

output:

16395

result:

ok single line: '16395'

Extra Test:

score: 0
Extra Test Passed