C-ICPC-无限路之城

题目描述

集训队里,有一位是城市与环境规划学院出身的队员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行,每行一个整数,表示最多能增加的边数
示例1

输入

复制
2
4 5
3 2

输出

复制
1
1

 
    

我居然错过了一道水题……心塞……

我当时看它好像很麻烦的样子就没做了 结果没想到这么简单

我看了通过代码都是几行的样子 觉得不对啊??

我就自己做了一遍 发现……

#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);
    }
}

然后完美结束??

吃一堑长一智吧……下次还是要把题目看完的……

猜你喜欢

转载自www.cnblogs.com/Lyrixblogs/p/10258918.html
今日推荐