백준 17511 - Capital

김성지·2023년 1월 29일
0

백준

목록 보기
9/19

문제 링크 : https://www.acmicpc.net/problem/17511

백준에서 처음으로 풀어본 애드혹 문제이다
문제 지문을 간단히 요약하자면

  1. 간선의 가중치(도로의길이) 양수로 모르는값(임의의 값이다)
  2. Ai Bi 가 주어진다.
    이는 정점 Ai,Bi가 연결되었다는 동시에
    수도 S로부터 거리가 Ai<Bi가 되어야 한다

엄밀한 증명을 적고싶은데 아직 그럴 능력이 안돼서..ㅠ
그래프 하나 적당히 그려놓고
가능한 수도 S를 1부터 N까지 판별하다보면

Bi로 지정된 지점은 절대 수도가 될 수 없다고
발견할 수 있다

#include<iostream>
#include<algorithm>
#include<vector>
#include<cstring>
using namespace std;
// 도시개수,도로개수
int N,M;
vector<int> ans;bool checked[501];
int main(){
    cin>>N>>M;
    memset(checked,true,sizeof(checked));
    for(int i=0;i<M;i++){
        int a,b;cin>>a>>b;
        checked[b]=false;
    }
    for(int i=1;i<=N;i++){
        if(!checked[i]) continue;
        ans.push_back(i);
    }
    cout<<ans.size()<<"\n";
    for(int a : ans){
        cout<<a<<"\n";
    }
}

0개의 댓글