hdu-5422 Rikka with Graph

題意:
n個點構成的圖,連接一條邊,使點1和n之間的距離最短。
題解:
點1和n的距離最短肯定是1啊,直接連接1和n就好了。如果之前1和n已經有邊連接了,那就隨便連接一條邊好了,就是(n*(n-1))>>1啊。

#include <iostream>
#include <stdio.h>
#include <string.h>

using namespace std;

int main(){
    int n,m;
    while(scanf("%d %d", &n, &m) != EOF){
        int gmap[150][150];
        bool ok = false;
        memset(gmap, 0, sizeof(gmap));
        while(m--){
            int u, v;
            scanf("%d %d", &u, &v);
            if((u == 1 && v == n) || (u == n && v == 1)){
                ok = true;
            }
        }
        if(ok){
            printf("1 %d\n",(n*(n-1))>>1);
        }
        else{
            printf("1 1\n");
        }
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章