2017 Multi-University Training Contest 5 solutions 1006 Rikka with Graph
2017-08-10 09:23
465 查看
考虑贪心地一条一条边添加进去。
当 m≤n−1m≤n−1 时,我们需要最小化距离为 nn 的点对数,所以肯定是连出一个大小为 m+1m+1 的联通块,剩下的点都是孤立点。在这个联通块中,为了最小化内部的距离和,肯定是连成一个菊花的形状,即一个点和剩下所有点直接相邻。
当 m>n−1m>n−1 时,肯定先用最开始 n−1n−1 条边连成一个菊花,这时任意两点之间距离的最大值是 22。因此剩下的每一条边唯一的作用就是将一对点的距离缩减为 11。
这样我们就能知道了最终图的形状了,稍加计算就能得到答案。要注意 mm 有可能大于 n(n−1)22n(n−1)。
当 m≤n−1m≤n−1 时,我们需要最小化距离为 nn 的点对数,所以肯定是连出一个大小为 m+1m+1 的联通块,剩下的点都是孤立点。在这个联通块中,为了最小化内部的距离和,肯定是连成一个菊花的形状,即一个点和剩下所有点直接相邻。
当 m>n−1m>n−1 时,肯定先用最开始 n−1n−1 条边连成一个菊花,这时任意两点之间距离的最大值是 22。因此剩下的每一条边唯一的作用就是将一对点的距离缩减为 11。
这样我们就能知道了最终图的形状了,稍加计算就能得到答案。要注意 mm 有可能大于 n(n−1)22n(n−1)。
#include <cstdio> #include <iostream> using namespace std; long long int ans; long long int maxm; int main() { int t; scanf("%d",&t); while(t--) { long long n,m; scanf("%lld%lld",&n,&m); ans=n*(n-1); maxm=ans/2; if(m>=maxm) printf("%lld\n",ans); else if(m>=n-1) printf("%lld\n",ans+(maxm-m)*2); else printf("%lld\n",n*(n-m-1)*(n+m)+2*m*m); } return 0; }
相关文章推荐
- 2017 Multi-University Training Contest - Team 5:1006&hdu6090、 Rikka with Graph
- 2017 Multi-University Training Contest - Team 5 1006 Rikka with Graph
- 【2017 Multi-University Training Contest - Team 5】Rikka with Graph
- 2017 Multi-University Training Contest - Team 5 Rikka with Graph
- HDU 6090 Rikka with Graph (贪心+构造, 2017 Multi-Univ Training Contest 5)
- 2017 Multi-University Training Contest - Team 5:Rikka with Number
- HDU 6086 Rikka with String(2017 Multi-University Training Contest 3)
- HDU 6093 Rikka with Number (2017 Multi-University Training Contest - Team 5)
- 2017 Multi-University Training Contest - Team 5:1011&hdu6095、Rikka with Competition
- 2017 Multi-University Training Contest - Team 5 :Rikka with Subset
- 【2017 Multi-University Training Contest - Team 5】Rikka with Competition
- 【2017 Multi-University Training Contest - Team 5】Rikka with Subset
- HDU 6088 - Rikka with Rock-paper-scissors | 2017 Multi-University Training Contest 5
- 2017 Multi-University Training Contest - Team 5-Rikka with Subset
- 2017 Multi-University Training Contest - Team 5-1008 & hdu6092、Rikka with Subset
- 2017 Multi-University Training Contest 5 solutions 1011 Rikka with Competition
- 2017 Multi-University Training Contest - Team 5 1008 Rikka with Subset
- 2017 Multi-University Training Contest - Team 5 Rikka with Competition
- HDU 6093 Rikka with Number (2017 Multi-Univ Training Contest 5)
- 2017 Multi-University Training Contest - Team 1 1006 【思维+强联通找环】