题目来源:https://vjudge.net/problem/HDU-5422
【题意】
给出了一个无向图,n个点,m条边,可以在任意两点加一条边,然后,让求1到n的最短路,有多少种加边的方式。
举个例子:
4个顶点,其中1和4连起来,那么最短路就一定是1,边可以任意加,就是n*(n-1)/2条(任意两个不同的点有多少种连接方式),对应的,如果给出1和3相连,要保证最短路,只能增加一条1和4相连的边,只有一种方式,最短路也是1。
【代码】
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m))
{
int x,y;
int flag=0;
for(int i=0;i<m;i++)
{
scanf("%d%d",&x,&y);
if(x==1&&y==n||x==n&&y==1)
flag=1;
}
if(flag)
printf("1 %d\n",n*(n-1)/2);
else
printf("1 1\n");
}
}