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