티스토리 뷰
solved.ac 티어 : 플래티넘 5
이문제는 아주 쉬운 이분 매칭이라 입력을 받고 너비가 w/2 이상 w*3/4 이하랑 너비가 w 이상 w*5/4인 경우 해당 위치에 값을 넣어주고 이분 매칭 하면 끝난다.
(이 문제 못 풀면 이분 매칭 다시 배워야 된다.)
#include <bits/stdc++.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
typedef long long ll;
ll inf=1e9;
vector<ll> l[1001];
ll t[1001],q[1001],ty[1001];
ll n,m;
bool dfs(ll x){
for(int i=0;i<l[x].size();i++){
ll y=l[x][i];
if(t[y]){continue;}
t[y]=true;
if(q[y]==0||dfs(q[y])){
q[y]=x;
return true;
}
}
return false;
}
int main()
{
ll c,d,cnt=0;
scanf("%lld %lld",&n,&m);
for(int i=1;i<=n;i++){
scanf("%lld",&ty[i]);
}
for(int i=1;i<=m;i++){
scanf("%lld",&c);
for(int g=1;g<=n;g++){
if(((double)ty[g]/2<=c && ty[g]*3/4>=c)||(ty[g]<=c && ty[g]*5/4>=c)){
//printf("%lld %lld\n",g,i);
l[g].push_back(i);
}
}
}
for(int i=1;i<=n;i++){
fill(t,t+1001,false);
if(dfs(i)){cnt++;}
}
printf("%lld\n",cnt);
}
딱히 주석도 필요 없을 정도로 쉽다.
'ps' 카테고리의 다른 글
BOJ 17299(오등큰수)풀이 (0) | 2021.01.10 |
---|---|
BOJ 18282(해킹) 풀이 (0) | 2021.01.10 |
BOJ 19851(버거운 버거)풀이 (0) | 2021.01.07 |
BOJ 1017(소수 쌍) 풀이 (0) | 2021.01.06 |
Codeforces Round #693 (Div. 3) 풀이 (2) | 2021.01.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 이분 탐색
- 정렬
- 다이나믹 프로그래밍
- Python
- 최소 스패닝 트리
- codeforces
- 그리디 알고리즘
- 개발
- C++
- 완전 탐색
- 구현
- 느리게 갱신되는 세그먼트 트리
- 선분 교차 판정
- 이분매칭
- 잡봇
- 자료 구조
- 수학
- 그래프 탐색
- 그래프 이론
- A Dance of Fire and Ice
- 알고리즘
- 세그먼트 트리
- 트리
- 누적 합
- discord bot
- 트리에서의 다이나믹 프로그래밍
- 깊이 우선 탐색
- 자료구조
- KOI
- BOJ
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함