题目描述
集训队里,有一位是城市与环境规划学院出身的队员7373!
某一天7373在坐地铁时,对城市的公共交通规划产生了兴趣.
他知道一个有趣的事实:
对于N个点,在任意点之间连接边,只要N-1条边就能让任意两点之间能互相可达
但他现在要规划的可不是普通的城市,是无限路之城
ICPC,InfiniteCreatingPathCityICPC,InfiniteCreatingPathCity
这个城市中,可以任意在两个地点之间造免费的路!
这些路可以互相交叉,但是每两个地方之间只能造一条边.
现在这个城市中的N个点已经建立了M条边,现在7373想知道,最多还能增加多少条边?
输入描述:
第一行为正整数T,表示测试组数,T<=1000
接下来T组数据,每组一行,包含两个非负整数N,M,其中0<=N<=10
6,0<=M<=10
12
输入数量保证不出现多余的边
输出描述:
T行,每行一个整数,表示最多能增加的边数
我居然错过了一道水题……心塞……
我当时看它好像很麻烦的样子就没做了 结果没想到这么简单
我看了通过代码都是几行的样子 觉得不对啊??
我就自己做了一遍 发现……
#include <stdio.h> #include <stdlib.h> #include <string.h> #define ll long long int main() { int t; ll m,n; scanf("%d",&t); while(t--) { scanf("%lld %lld",&m,&n); ll sum; sum=m*(m-1)/2; //这是总共能组成的路的条数,相当于从1加到n-1(就是每条路跟剩下来的路连线啦……) printf("%lld\n",sum-n); } }
然后完美结束??
吃一堑长一智吧……下次还是要把题目看完的……