题解:考虑贪心地一条一条边添加进去。

当 m \leq n-1m≤n−1 时,我们需要最小化距离为 nn 的点对数,所以肯定是连出一个大小为 m+1m+1 的联通块,剩下的点都是孤立点。在这个联通块中,为了最小化内部的距离和,肯定是连成一个菊花的形状,即一个点和剩下所有点直接相邻。

当 m > n-1m>n−1 时,肯定先用最开始 n-1n−1 条边连成一个菊花,这时任意两点之间距离的最大值是 22。因此剩下的每一条边唯一的作用就是将一对点的距离缩减为 11。

这样我们就能知道了最终图的形状了,稍加计算就能得到答案。要注意 mm 有可能大于 \frac{n(n-1)}{2}​2​​n(n−1)​​。

队友给力,手速快,赛后补代码都补了20多分钟,,, 果然自己代码实现能力还是弱渣。

AC代码:

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <queue>
  4. #include <iostream>
  5. using namespace std;
  6. typedef long long ll;
  7. ll get(ll n)
  8. {
  9. ll temp=n-1ll;
  10. temp+=(n-1ll)*((2ll)*n-3ll);
  11. return temp;
  12. }
  13. int main()
  14. {
  15. int t;
  16. cin>>t;
  17. while(t--)
  18. {
  19. ll n,m;
  20. scanf("%lld %lld",&n,&m);
  21. ll ans=;
  22. m=min(m,(n-1ll)*n/2ll);
  23. if(m <= n-)
  24. {
  25. ans+=get(m+);
  26. ll temp=n-m-;
  27. ans+=temp*(m+)*n*;
  28. ans+=(temp-1ll)*temp*n;
  29. cout<<ans<<endl;
  30. }
  31. else
  32. {
  33. ll temp=get(n)-(m-(n-))*;
  34. cout<<temp<<endl;
  35. }
  36. }
  37. return ;
  38. }

Rikka with Graph hdu 6090的更多相关文章

  1. B - Rikka with Graph HDU - 5631 (并查集+思维)

    As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some mat ...

  2. HDU 6090 Rikka with Graph

    Rikka with Graph 思路: 官方题解: 代码: #include<bits/stdc++.h> using namespace std; #define ll long lo ...

  3. HDU 6090 Rikka with Graph —— 2017 Multi-University Training 5

    Rikka with Graph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  4. HDU 5631 Rikka with Graph 暴力 并查集

    Rikka with Graph 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5631 Description As we know, Rikka ...

  5. HDU 5422 Rikka with Graph

    Rikka with Graph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  6. HDU 5424——Rikka with Graph II——————【哈密顿路径】

    Rikka with Graph II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Othe ...

  7. Rikka with Graph(联通图取边,暴力)

    Rikka with Graph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  8. Rikka with Graph(hdu5631)

    Rikka with Graph  Accepts: 123  Submissions: 525  Time Limit: 2000/1000 MS (Java/Others)  Memory Lim ...

  9. HDU 6090 17多校5 Rikka with Graph(思维简单题)

    Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situation, so he ...

随机推荐

  1. 在windows平台下搭建Django项目虚拟环境

    参考文档:https://www.cnblogs.com/lovele-/p/8719126.html  https://blog.csdn.net/lwcaiCSDN/article/details ...

  2. MySQL索引选择及添加原则

    索引选择性就是结果个数与总个数的比值. 用sql语句表示为: SELECT COUNT(*) FROM table_name WHERE column_name/SELECT COUNT(*) FRO ...

  3. kotlin 之相等判断

    在kotlin 中存在二种相等的判断: 1.引用相等 也就是说,两个引用指向同一个对象,使用===操作 ,相反操作为!==来判断 2.结构相等 使用equals 函数相等和==操作符 a?.equal ...

  4. JAVA 基础编程练习题37 【程序 37 报数】

    37 [程序 37 报数] 题目:有 n 个人围成一圈,顺序排号.从第一个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子, 问最后留下的是原来第几号的那位. package cskaoy ...

  5. JAVA 基础编程练习题27 【程序 27 求素数】

    27 [程序 27 求素数] 题目:求 100 之内的素数 package cskaoyan; public class cskaoyan27 { @org.junit.Test public voi ...

  6. Ubuntu 18.04 上使用xrdp远程桌面连接

    参考:https://blog.csdn.net/qq_25556149/article/details/82216190 1,环境查看 2,安装 xrdp.tightvncserver apt-ge ...

  7. STM32命名规则解析

  8. springboot-定时任务-多线程

    1.配置异步线程池 import java.util.concurrent.Executor; import org.springframework.context.annotation.Bean; ...

  9. Flutter 路由 页面间跳转和传参 返回

    Navigator Navigator用来管理堆栈功能(即push和pop),在Flutter的情况下,当我们导航到另一个屏幕时,我们使用Navigator.push方法将新屏幕添加到堆栈的顶部.当然 ...

  10. OpenGL学习(4)——纹理(补)

    完成章节后练习 练习 1. Make sure only the happy face looks in the other/reverse direction by changing the fra ...