2020. 12. 28. 00:18ใ๐จ๐ป๐ซ ํ๋ก๊ทธ๋๋ฐ/BOJ(๋ฐฑ์ค)
๋ฐฑ์ค์ด๋ ๋ฐฉ ์ฒญ์๋ฅผ ํ๋ฉด์ ํ์ ์๋ ์ ๊ณต ์์ ์ ์ฌ๋๋ค์๊ฒ ๋๋ ์ฃผ๋ ค๊ณ ํ๋ค. ๋๋ ์ค ์ฑ ์ ๋ชจ์๋ณด๋ ์ด N๊ถ์ด์๋ค. ์ฑ ์ด ๋๋ฌด ๋ง๊ธฐ ๋๋ฌธ์ ๋ฐฑ์ค์ด๋ ์ฑ ์ ๊ตฌ๋ถํ๊ธฐ ์ํด ๊ฐ๊ฐ 1๋ถํฐ N๊น์ง์ ์ ์ ๋ฒํธ๋ฅผ ์ค๋ณต๋์ง ์๊ฒ ๋งค๊ฒจ ๋์๋ค.
์กฐ์ฌ๋ฅผ ํด ๋ณด๋ ์ฑ ์ ์ํ๋ ์๊ฐ๋ํ๊ต ํ๋ถ์์ด ์ด M๋ช ์ด์๋ค. ๋ฐฑ์ค์ด๋ ์ด M๋ช ์๊ฒ ์ ์ฒญ์์ ๋ ์ ์ a, b (1 โค a โค b โค N)๋ฅผ ์ ์ด ๋ด๋ผ๊ณ ํ๋ค. ๊ทธ๋ฌ๋ฉด ๋ฐฑ์ค์ด๋ ์ฑ ๋ฒํธ๊ฐ a ์ด์ b ์ดํ์ธ ์ฑ ์ค ๋จ์์๋ ์ฑ ํ ๊ถ์ ๊ณจ๋ผ ๊ทธ ํ์์๊ฒ ์ค๋ค. ๋ง์ฝ a๋ฒ๋ถํฐ b๋ฒ๊น์ง์ ๋ชจ๋ ์ฑ ์ ์ด๋ฏธ ๋ค๋ฅธ ํ์์๊ฒ ์ฃผ๊ณ ์๋ค๋ฉด ๊ทธ ํ์์๊ฒ๋ ์ฑ ์ ์ฃผ์ง ์๋๋ค.
๋ฐฑ์ค์ด๊ฐ ์ฑ ์ ์ค ์ ์๋ ์ต๋ ํ์ ์๋ฅผ ๊ตฌํ์์ค.
์ ์ถ๋ ฅ
์ ๋ ฅ : ์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ์๊ฐ ์ฃผ์ด์ง๋ค.
๊ฐ ์ผ์ด์ค์ ์ฒซ ์ค์ ์ ์ N(1 โค N โค 1,000)๊ณผ M(1 โค M โค 1,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค๋ถํฐ M๊ฐ์ ์ค์๋ ๊ฐ๊ฐ ์ ์ ai, bi๊ฐ ์ฃผ์ด์ง๋ค. (1 โค ai โค bi โค N)
์ถ๋ ฅ : ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค ๋ฐฑ์ค์ด๊ฐ ์ฑ ์ ์ค ์ ์๋ ์ต๋ ํ์ ์๋ฅผ ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
ํ๋ถ์ ๊ณผ ์ ๊ณต์ฑ ์ง๋จ๊ฐ์ ์ต๋ ๋งค์นญ์ ์ฐพ๋ ๋ฌธ์ ์ด๊ธฐ๋๋ฌธ์ ์ด๋ถ๋งค์นญ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์์ต๋๋ค. ๋ ์ง๋จ๊ฐ์ ๊ทธ๋ํ ์ฐ๊ฒฐ ๊ด๊ณ๋ ์ ๋ ฅ๋ a , b ์ฌ์ด์ ๋ชจ๋ ์ฑ ๊ณผ ์ฐ๊ฒฐ๋์ด ์๊ณ ์ด ์ ๋ณด๋ฅผ 2์ฐจ์ ๋ฐฐ์ด์ ํตํด ์ ์ฅํ์์ต๋๋ค.
์ด๋ถ๋งค์นญ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด์๋ ๋ฐ๋ก ํฌ์คํ ์ ๋จ๊ธฐ๋๋ก ํ๊ฒ ์ต๋๋ค!
#include<bits/stdc++.h> using namespace std; const int MAX=1000+1; int T,N,M,students[MAX][3],books[MAX],visited[MAX]; bool dfs(int a){ if(visited[a]) return false; visited[a]=true; for(int b=students[a][1];b<=students[a][2];b++){ if(books[b]==0||dfs(books[b])){ // ๋งค์นญ์ด ์๋์ด ์๋ ๊ฒฝ์ฐ, students[a][0]=b; // books[b] == 0 -> ํ์์ธ๋ฑ์ค 1๋ถํฐ ์์ books[b]=a; return true; } } return false; } int biMatch(){ int ans=0; for(int i=1;i<=M;i++){ fill(visited,visited+MAX,0); if(dfs(i)) ans++; } return ans; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin>>T; while(T--){ memset(students,0,sizeof(students)); memset(books,0,sizeof(books)); cin>>N>>M; for(int i=1;i<=M;i++){ cin>>students[i][1]>>students[i][2]; // a , b์ ๋ ฅ } cout<<biMatch()<<"\n"; } return 0; }
๋ถ์กฑํ ๋ถ๋ถ์ด๋ ๊ถ๊ธํ ๋ถ๋ถ ๋๊ธ ๊ฐ์ฌํ๊ฒ ์ต๋๋ค!.
'๐จ๐ปโ๐ซ ํ๋ก๊ทธ๋๋ฐ > BOJ(๋ฐฑ์ค)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 13306๋ฒ: ํธ๋ฆฌ (0) | 2021.01.12 |
---|---|
[๋ฐฑ์ค] 11377๋ฒ: ์ดํ๊ฐํธ 3 (0) | 2021.01.10 |
[๋ฐฑ์ค] 2470 ๋ฒ: ๋ ์ฉ์ก (0) | 2020.12.26 |
[๋ฐฑ์ค] 1644๋ฒ: ์์์ ์ฐ์ํฉ (0) | 2020.12.25 |
[๋ฐฑ์ค] 1054๋ฒ: ํน์ ํ ์ต๋จ ๊ฒฝ๋ก (0) | 2020.12.21 |