題意:
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;
}