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

住房和城乡建设部网站 城市绿地分类/化工网站关键词优化

住房和城乡建设部网站 城市绿地分类,化工网站关键词优化,一家专门做特卖的网站是什么,用wordpress作下载站点题目描述&#xff1a; 给出一个N个点M条边的无向图&#xff0c;经过一个点的代价是进入和离开这个点的两条边的边权的较大值&#xff0c;求从起点1到点N的最小代价。起点的代价是离开起点的边的边权&#xff0c;终点的代价是进入终点的边的边权N<100000M<200000算法标签&…

题目描述:

给出一个N个点M条边的无向图,经过一个点的代价是进入和离开这个点的两条边的边权的较大值,求从起点1到点N的最小代价。起点的代价是离开起点的边的边权,终点的代价是进入终点的边的边权
N<=100000
M<=200000

算法标签:dijk,建边优化

思路:

考虑重新建图,容易想到把两条边合成一条边,边权是两边之间的最大值,这样边的条数是m跑不过,考虑优化建边。对于每个顶点,我们仅把这个点的入边与和我大小相同的出边相连,因为我们把双向边拆成单向边,所以必然存在与自己的大小相等的出边。再把每条出边像比自己小的边连0,比自己大的边连权值的差值,这么建边条数是m级别的。

以下代码:

#include<bits/stdc++.h>
#define il inline
#define LL long long
#define _(d) while(d(isdigit(ch=getchar())))
using namespace std;
const int N=4e5+5,M=4e6+5;
struct node{int x,v;};vector<node> v[N];
int n,m,s,t,head[N],ne[M],to[M],w[M],cnt;LL d[N];
struct data{int x;LL d;bool operator<(const data&t1)const{return d>t1.d;};};
bool cmp(node t1,node t2){return t1.v<t2.v;}priority_queue<data> q;
il int read(){int x;char ch;_(!);x=ch^48;_()x=(x<<1)+(x<<3)+(ch^48);return x;}
il void insert(int x,int y,int z){ne[++cnt]=head[x];head[x]=cnt;to[cnt]=y;w[cnt]=z;}
il void dijk(){for(int i=1;i<=t;i++)d[i]=1e18;q.push((data){s,0});while(!q.empty()){data now=q.top();q.pop();int x=now.x;if(now.d!=d[x])continue;for(int i=head[x];i;i=ne[i])if(d[to[i]]>d[x]+w[i])d[to[i]]=d[x]+w[i],q.push((data){to[i],d[to[i]]});}
}
int main()
{n=read();m=read();s=0;t=2*m+1;for(int i=1;i<=m;i++){int x=read(),y=read(),z=read();v[x].push_back((node){i,z});v[y].push_back((node){i+m,z});insert(i,i+m,z);insert(i+m,i,z);}for(int i=0;i<v[1].size();i++)insert(s,v[1][i].x,v[1][i].v);for(int i=0;i<v[n].size();i++)insert(v[n][i].x,t,0);for(int i=2;i<n;i++){sort(v[i].begin(),v[i].end(),cmp);for(int j=1;j<v[i].size();j++){insert(v[i][j-1].x,v[i][j].x,v[i][j].v-v[i][j-1].v);insert(v[i][j].x,v[i][j-1].x,0);}}dijk();printf("%lld\n",d[t]);return 0;
}
View Code

 

转载于:https://www.cnblogs.com/Jessie-/p/10199172.html

http://www.lbrq.cn/news/732709.html

相关文章:

  • 网站备案接入商是什么/微信指数官网
  • 重庆网站建设要点/百度网站的优化方案
  • 龙港网站建设/整站优化排名
  • 昆明市网站制作公司/排名优化网站seo排名
  • 做技术网站赚钱吗/天津百度关键词推广公司
  • 做的网站如何全屏代码/推广公司
  • 网页制作与维护/潍坊自动seo
  • 沈阳城市建设招生网站/营销推广方式有哪些
  • 合肥seo/汕头seo网络推广服务
  • 注册top域名做公司网站/网站推广关键词排名优化
  • 云南网站制作报价/nba球队排名
  • 日照企业网站建设/江苏企业网站建设
  • 建立网站教程视频/厦门seo招聘
  • 手机端网站的区别/推广服务商
  • 企业网站备案怎么搞/制作网站要花多少钱
  • 电信电信网站备案系统/今日nba数据帝
  • 营销网站制作需要多少钱/有没有专门帮人推广的公司
  • 杭州网站建设设计/我想做地推怎么找渠道
  • seo外贸推广/seo推广技术培训
  • 顺义重庆网站建设/引流推广营销
  • 美食网站开发的背景/头条搜索是百度引擎吗
  • 厦门模板建站平台/营销软文怎么写
  • 网站打不开是为什么/sem是什么
  • 番禺做网站多少钱/网络广告有哪些形式
  • 网站建设推广服务合同范本/百度提交网站收录入口
  • 一流的网站建设流程/昆明网络推广方式有哪些
  • 我的家乡网页设计报告/百度搜索推广优化师工作内容
  • pc网站自动跳转wap/关键词查询的分析网站
  • 公司申请网站建设申请理由/品牌seo是什么
  • 政府外文网站建设意义/最新seo新手教程
  • 【机器学习深度学习】LMDeploy的分布式推理实现
  • LeetCode100 -- Day3
  • 【运维进阶】if 条件语句的知识与实践
  • 沪深股指期货指数「IF000」期货行情怎么看?
  • 《CDN加速的安全隐患与解决办法:如何构建更安全的网络加速体系》
  • 大数据数据库 —— 初见loTDB