当前位置: 首页 > news >正文

P3044题解

题目链接

这道题还是比较适合练习dijikstra的.

首先我们看到题目.一般来说这种过于复杂的题都会有一个突破口,这里的突破口城镇数量最多为5.我们可以想到一个暴力,那就是分别枚举每一个不是城镇的点看是不是最优的点.但是访问城镇的顺序不是固定的,我们因此使用全排列进行暴力枚举.这样的复杂度是O(120n),虽然常数很恐怖但还是可以过的.

如何求出结果呢?我们只需要维护和城镇相连的点.我们可以维护一个类似floyd的dis数组,然后对每个城镇跑一次dijikstra,这样子就可以得出所有需要计算的距离.

代码:

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e4+10;
int n,m,k,st[N],id[N],dis[10][N],x,y,w,a[N],ans,mi=(1e18);
bool f[N];
struct node{int u,d;bool operator < (const node &u) const{return u.d<d;}	
};
vector<node>v[N];
void dij(int x){priority_queue<node>q;for(int i=1;i<=n;i++) dis[x][i]=(1e9), f[i]=0;dis[x][st[x]]=0, q.push({st[x],0});while(q.size()){node t=q.top();q.pop();if(f[t.u]) continue;else f[t.u]=1;for(int i=0;i<v[t.u].size();i++){int u=v[t.u][i].u, w=v[t.u][i].d;if(dis[x][t.u]+w<=dis[x][u]){dis[x][u]=dis[x][t.u]+w;q.push({u,dis[x][u]});}}}
}
signed main(){cin>>n>>m>>k;for(int i=1;i<=k;i++) cin>>st[i];sort(st+1,st+k+1);for(int i=1;i<=k;i++) id[st[i]]=i;while(m--){cin>>x>>y>>w;v[x].push_back({y,w}), v[y].push_back({x,w});	}for(int i=1;i<=k;i++) dij(i);for(int i=1;i<=n;i++){if(id[i]) continue;for(int j=1;j<=k;j++) a[j]=st[j];do{ans=0;for(int j=1;j<k;j++) ans+=dis[id[a[j]]][a[j+1]];ans+=dis[id[a[1]]][i]+dis[id[a[k]]][i];mi=min(mi,ans);}while(next_permutation(a+1,a+k+1));}cout<<mi;return 0;
}
http://www.dtcms.com/a/416559.html

相关文章:

  • 彩票网站开发注意事情江苏省建设执业资格注册中心网站
  • 泉州建设网站开发承德网站建设方案
  • 信号量(一)
  • 网站建设好的公司专业服务app开发制定公司
  • 免费网站建东莞网站建设公司辉煌大厦
  • seo发展现状适合seo优化的站点
  • 网站到底是域名需要备案还是空间wordpress 数组
  • 网站优化关键词排名怎么做学校网站模板大全
  • 用路由器建设网站企业宣传片模板
  • WPS电信定制版
  • 国外有名的网站营销助手app下载
  • 汽车网站开发的需求分析大连外贸网站制作
  • 资源网站源码下载海口平台公司
  • 网站建设深圳市免费做一建或二建题目的网站
  • 广州市住房与城乡建设部网站网页制作如何设置网页背景
  • Roo Code的工具系统:智能开发的幕后引擎
  • 网站如果不续费会怎样wordpress默认参数
  • 网站用什么平台开发wordpress 添加目录权限
  • 算法训练.16
  • 郑州软件开发学校seo网站优化课程
  • 昆明制作网站公司网站建设及运营 经营范围
  • 网站建设和维护要学多久珠海网站定制开发
  • 中原区快速建站公司电话wordpress本地后台密码修改
  • 设计感的网站收图片的网站
  • Vidma 2.17.3| 无限制AI生图,无违禁词,用英文效果更好,需要特殊网络
  • 网站模板价格深圳营销型网站建设案例
  • VCU开发——热管理PID参数整定流程
  • 网站affiliate怎么做网站自己推广
  • MySQL优化器统计信息:性能调优关键
  • 村建站全称上海注册公司需要多久