这题算是这场考试里最水的一道题了吧,就是求个最小环,但之前没练过,就在考场上yy出了最短路+次短路的傻逼解法,首先是不会求次短路,其次是这显然不对呀,自己随便想想就可以反驳这种解法。

正解比较神,但是跑n遍dijkstra就完全可以了,具体细节看代码吧。

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>
#include<queue>
using namespace std;
const int N=;
int first[N],to[N*],nex[N*],edge[N*],tot=,d[N],v[N];
void add(int a,int b,int c){
to[++tot]=b,edge[tot]=c,nex[tot]=first[a],first[a]=tot;
}
priority_queue<pair<int ,int > >q;
void dij(int k){
memset(d,0x3f,sizeof(d));
memset(v,,sizeof(v));
q.push(make_pair(,k));
d[k]=;
while(q.size()){
int x=q.top().second;
q.pop();
if(v[x]) continue;
v[x]=;
for(int i=first[x];i;i=nex[i]){
int y=to[i],z=edge[i];
if(d[y]>d[x]+z){
d[y]=d[x]+z;
q.push(make_pair(-d[y],y));
}
}
}
}
void init(){
tot=;
memset(first,,sizeof(first));
memset(nex,,sizeof(nex));
memset(to,,sizeof(to));
}
int main(){
int T;
scanf("%d",&T);
while(T--){
int n,m;
scanf("%d%d",&n,&m);
init();
for(int i=;i<=m;i++){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
add(x,y,z);
add(y,x,z);
}
int ans=;
for(int i=first[];i;i=nex[i]){
int z=edge[i],y=to[i];
edge[i]=edge[i^]=;
dij();
ans=min(ans,d[y]+z);
edge[i]=edge[i^]=z;
}
if(ans==) {puts("-1");continue;}
printf("%d\n",ans);
}
}

最新文章

  1. MySql 修改列的注释信息的方法
  2. Linux_日志管理介绍(一)
  3. Material Design入门(三)
  4. BLE-NRF51822教程16-BLE地址
  5. [ZJOI2006]物流运输
  6. ajax 例子
  7. pl/sql developer 连接本地ORACLE 11g 64位数据库
  8. 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。
  9. [OC Foundation框架 - 13] NSValue
  10. C++ sizeof的使用总结
  11. contentHorizontalAlignment 属性浅析
  12. codeforces 755D. PolandBall and Polygon
  13. noSQL数据库相关软件介绍(大数据存储时候,必须使用)
  14. nn.ConvTranspose2d的参数output_padding的作用
  15. Unity下载
  16. UML之涉众/参与者(角色/执行者)(Actor)/业务主角(BusinessActor)/业务工人(BusinessWorker)/用户/角色辨析【图解】
  17. 抽奖 mark
  18. angular --- s3core移动端项目(三)
  19. UML之组件图
  20. crontab的定时任务实例

热门文章

  1. Codeforces Round #406 (Div. 2) A MONSTER
  2. webmagic学习之路-2:采集安居客经纪人列表
  3. Pytorch中nn.Conv2d的用法
  4. 养成一个SQL好习惯
  5. ubuntu下安装python-selenuim自动化测试的谷歌浏览器驱动安装的位置
  6. [Eclipse的Maven项目搭建,仅为测试Maven功能]如何在Eclipse下搭建Maven项目
  7. java技术面试之面试题大全
  8. 红队基础设施建设:隐藏你的C2
  9. Ubuntu .tar.xz文件解压缩命令
  10. Scal(三)——类与对象