博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【构造】【贪心】hdu6090 Rikka with Graph
阅读量:5972 次
发布时间:2019-06-19

本文共 556 字,大约阅读时间需要 1 分钟。

给你n个点,让你连m条边,使得任意两两点对之间的最短路的和最小(两点若不可达,最短路记作n)。

初始时ans=n*n*(n-1)。

先尽量连成菊花图,每连一次让答案减小2*((n-2)*(i-1)+(n-1)),i为当前菊花图中的点数。

连完后剩下的边,每连一次让答案减小2。

如果已经用了n*(n-1)/2条边,剩下的边没有意义。

#include
#include
using namespace std;typedef long long ll;ll ans,m;int T,n;int main(){ scanf("%d",&T); for(;T;--T){ scanf("%d%lld",&n,&m); ans=(ll)n*(ll)(n-1)*(ll)n; if(m<(ll)n){ for(int i=1;i<=(int)m;++i){ ans-=(ll)(i-1)*(ll)(n-2)*2ll; ans-=(ll)(n-1)*2ll; } } else{ for(int i=1;i

转载于:https://www.cnblogs.com/autsky-jadek/p/7309743.html

你可能感兴趣的文章
openstack 之 windows server 2008镜像制作
查看>>
VI快捷键攻略
查看>>
Win server 2012 R2 文件服务器--(三)配额限制
查看>>
卓越质量管理成就创新高地 中关村软件园再出发
查看>>
linux rsync 远程同步
查看>>
httpd的manual列目录漏洞
查看>>
myeclipse2014破解过程
查看>>
漫谈几种反编译对抗技术
查看>>
VS 编译错误
查看>>
Timer 和 TimerTask 例子
查看>>
Spring BOOT 集成 RabbitMq 实战操作(一)
查看>>
安装python3.5注意事项及相关命令
查看>>
进程通信之无名信号量
查看>>
并发串行调用接口
查看>>
C# 视频监控系列 序 [完]
查看>>
Mongodb3.0.5副本集搭建及spring和java连接副本集配置
查看>>
FileStream大文件复制
查看>>
TDD 的本质不是 TDD
查看>>
linux命令学习——ps
查看>>
freemark 判断list是否为空
查看>>