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

出格做网站网站源码怎么做网站

出格做网站,网站源码怎么做网站,网站租服务器,做淘宝优惠券网站要多少钱P5122 [USACO18DEC] Fine Dining G 题目大意 有一个由 n n n个点 m m m条边构成的无向连通图,这 n n n个点的编号为 1 1 1到 n n n。前 n − 1 n-1 n−1个点上都有一头奶牛,这些奶牛都要前往 n n n号点。第 i i i条边连接 a i a_i ai​和 b i b_i bi​…

P5122 [USACO18DEC] Fine Dining G

题目大意

有一个由 n n n个点 m m m条边构成的无向连通图,这 n n n个点的编号为 1 1 1 n n n。前 n − 1 n-1 n1个点上都有一头奶牛,这些奶牛都要前往 n n n号点。第 i i i条边连接 a i a_i ai b i b_i bi,经过需要时间 t i t_i ti

k k k个干草捆分布在这些点中,第 i i i个干草捆的美味值为 y i y_i yi。每头奶牛都希望能够在某一处干草捆处停留并吃草,但奶牛只会在经过这个干草捆使她回牛棚的时间增加不超过这个干草捆的美味值时这样做。一头奶牛只会在一处干草捆处停留并吃草。

输出有 n − 1 n-1 n1行。如果第 i i i个点的奶牛可以在回牛棚的路上会前往某一个干草捆并且在此进食,则第 i i i行输出 1 1 1;否则,输出 0 0 0

可能有多个干草捆在同一个点。

2 ≤ n ≤ 5 × 1 0 4 , 1 ≤ m ≤ 1 0 5 2\leq n\leq5\times 10^4,1\leq m\leq 10^5 2n5×104,1m105


题解

dijkstra \text{dijkstra} dijkstra算出第 n n n个点到各个点的距离,设到第 i i i个点的距离为 d i s i dis_i disi

将所有有干草捆的点 x x x作为第二次 dijkstra \text{dijkstra} dijkstra的起点,起始值设为 d i s x − y x dis_x-y_x disxyx,意为从点 x x x到点 n n n的距离减去这个干草捆的美味值。用这些点为起点做一次 dijkstra \text{dijkstra} dijkstra,到各个点的距离记为 t d i td_i tdi

最后,对于每个 1 ≤ i < n 1\leq i<n 1i<n,如果 t d i ≤ d i s i td_i\leq dis_i tdidisi,则可以在一个干草捆停留,否则不行。

时间复杂度为 O ( ( n + m ) log ⁡ n ) O((n+m)\log n) O((n+m)logn)

code

#include<bits/stdc++.h>
using namespace std;
int n,m,k,x,y,z,tot=0,d[200005],l[200005],r[200005],w[200005];
int vs[100005],dis[100005],td[100005];
struct node{int id,x;bool operator<(const node ax)const{return x>ax.x;}
};
priority_queue<node>q;
void add(int xx,int yy,int zz){l[++tot]=r[xx];d[tot]=yy;r[xx]=tot;w[tot]=zz;
}
void dd1(){for(int i=1;i<=n;i++){vs[i]=0;dis[i]=2e9;}dis[n]=0;q.push((node){n,0});while(!q.empty()){int u=q.top().id;q.pop();if(vs[u]) continue;vs[u]=1;for(int i=r[u];i;i=l[i]){if(dis[d[i]]>dis[u]+w[i]){dis[d[i]]=dis[u]+w[i];q.push((node){d[i],dis[d[i]]});}}}
}
void dd2(){for(int i=1;i<=n;i++){vs[i]=0;if(td[i]<2e9) q.push((node){i,td[i]});}while(!q.empty()){int u=q.top().id;q.pop();if(vs[u]) continue;vs[u]=1;for(int i=r[u];i;i=l[i]){if(td[d[i]]>td[u]+w[i]){td[d[i]]=td[u]+w[i];q.push((node){d[i],td[d[i]]});}}}
}
int main()
{scanf("%d%d%d",&n,&m,&k);for(int i=1;i<=m;i++){scanf("%d%d%d",&x,&y,&z);add(x,y,z);add(y,x,z);}dd1();for(int i=1;i<=n;i++) td[i]=2e9;for(int i=1;i<=k;i++){scanf("%d%d",&x,&z);td[x]=min(td[x],dis[x]-z);}dd2();for(int i=1;i<n;i++){if(td[i]<=dis[i]) printf("1\n");else printf("0\n");}return 0;
}
http://www.yayakq.cn/news/95430/

相关文章:

  • 大学学部网站建设工作平面设计培训课程培训
  • 京东网站建设缺点wordpress公司网页主题
  • 泉州地区网站建设公司地产项目网站建设ppt
  • 网站备案完成后该如何做乌海市建设局网站
  • 福州建站免费模板中国购物网站排行榜
  • 移动互联网技术网站织梦 去掉我的网站
  • 私募基金网站开发流程图wordpress结合python
  • 做电商有哪些网站有哪些如何制作小程序商城
  • 多个域名解析到一个网站弥勒网站开发
  • 深圳网站seo设计网站下载链接怎么做
  • 做网站公司排名多少钱福州搜索优化网站
  • HTML5做网站例子网站收录是什么意思?
  • 如何制作简易网站网络游戏有哪些
  • 萧县住房和城乡建设局网站电子商务网站建设与管理课后答案
  • 做美食如何加入团购网站软件开发工程师访谈报告
  • 网站建设三个阶段烟台网站排名系统
  • 联通营业厅做网站维护做电影资源网站有哪些
  • 邢台本地网站如何防止php网站被挂马
  • 番禺手机网站建设物流服务与管理
  • 宁阳网站seo推广站长工具seo综合查询 分析
  • 公司网站 英文中国建筑协会证书查询
  • 网站推广哪个平台最好手机销售网站源码
  • 腾讯企业邮箱登录入口下载优化什么建立生育支持
  • 建设一个网站平台的费用重庆微信网站开发公
  • wordpress 做图片站网站系统升级
  • 大连仟亿科技网站建设公司怎么样商务网站开发与建设
  • 网站策划书的内涵网站设计手机版为什么那么多背景
  • 怎么做淘宝一样的网站食品网站建设 网站定制开发
  • 深圳网站建设设计佛山做网站yunzhanfs
  • 番禺网站开发服务网站建设的一般流程