Rikka with Graph
2015-08-29 21:59
351 查看
Rikka with Graph
Accepts: 353
Submissions: 1174
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
众所周知,萌萌哒六花不擅长数学,所以勇太给了她一些数学问题做练习,其中有一道是这样的: 勇太有一张nn个点mm条边的无向图,每一条边的长度都是1。现在他想再在这张图上连上一条连接两个不同顶点边,使得1号点到nn号点的最短路尽可能的短。现在他想要知道最短路最短是多少,以及再保证最短路最短的情况下,他有多少种连边的方案。 当然,这个问题对于萌萌哒六花来说实在是太难了,你可以帮帮她吗?
输入描述
数据组数不超过100组。每组数据的第一行两个整数n,m(2 \leq n \leq 100, 0 \leq m \leq 100)n,m(2≤n≤100,0≤m≤100)。 接下来mm行。每行两个整数u,v(1 \leq u,v \leq n)u,v(1≤u,v≤n),代表原图中的一条无向边。注意可能有自环和重边。
输出描述
对于每一组数据输出一行两个整数:最短路最短是多少以及加边的方案数。
输入样例
2 1 1 2
输出样例
1 1
Hint
你只能连上1 2这条边。
这题竟然没看清题目就做,所以以为是要用到图论来做,原来只是简单题。。。 总结:不能求快而节省审题时间。
AC代码:
#include<iostream>
#include<cstring>
#include<cstdio>
int main()
{
/*freopen("input.txt","r",stdin);*/
int n,m,j,k,f;
while(~scanf("%d%d",&n,&m))
{
f=0;
while(m--)
{
scanf("%d%d",&j,&k);
if(j==1&&k==n||j==n&&k==1)f=1;
}
k=1;
if(f)k=n*(n-1)/2;
printf("1 %d\n",k);
}
return 0;
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- C++ Custom Control控件向父窗体发送对应的消息
- C++中拷贝构造函数的应用详解