luoguP1821 [USACO07FEB]银牛派对Silver Cow Party
时间:2019-06-12
本文章向大家介绍luoguP1821 [USACO07FEB]银牛派对Silver Cow Party,主要包括luoguP1821 [USACO07FEB]银牛派对Silver Cow Party使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
华山论剑,双倍经验
1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=1e6+5; 4 const int INF=1e9+7; 5 struct A 6 { 7 int v,w,next; 8 }e1[maxn],e2[maxn]; 9 int head1[maxn],head2[maxn],tot1,tot2; 10 int n,m,k,d1[1005],d2[1005],v[1005]; 11 template <class t>void red(t &x) 12 { 13 x=0; 14 int w=1; 15 char ch=getchar(); 16 while(ch<'0'||ch>'9') 17 { 18 if(ch=='-') 19 w=-1; 20 ch=getchar(); 21 } 22 while(ch>='0'&&ch<='9') 23 { 24 x=(x<<3)+(x<<1)+ch-'0'; 25 ch=getchar(); 26 } 27 x*=w; 28 } 29 void input() 30 { 31 freopen("input.txt","r",stdin); 32 } 33 void add1(int x,int y,int z) 34 { 35 e1[++tot1].v=y; 36 e1[tot1].w=z; 37 e1[tot1].next=head1[x]; 38 head1[x]=tot1; 39 } 40 void add2(int x,int y,int z) 41 { 42 e2[++tot2].v=y; 43 e2[tot2].w=z; 44 e2[tot2].next=head2[x]; 45 head2[x]=tot2; 46 } 47 void read() 48 { 49 red(n); 50 red(m); 51 red(k); 52 int x,y,z; 53 for(int i=1;i<=m;++i) 54 { 55 red(x); 56 red(y); 57 red(z); 58 add1(x,y,z); 59 add2(y,x,z); 60 } 61 } 62 queue<int> q; 63 void bfs1() 64 { 65 for(int i=1;i<=n;++i) 66 for(int j=1;j<=n;++j) 67 d1[i]=INF; 68 d1[k]=0; 69 q.push(k); 70 while(!q.empty()) 71 { 72 int u=q.front(); 73 q.pop(); 74 v[u]=0; 75 for(int i=head1[u];i;i=e1[i].next) 76 { 77 int vi=e1[i].v; 78 int w=e1[i].w; 79 if(d1[vi]>d1[u]+w) 80 { 81 d1[vi]=d1[u]+w; 82 if(!v[vi]) 83 { 84 v[vi]=1; 85 q.push(vi); 86 } 87 } 88 } 89 } 90 } 91 void bfs2() 92 { 93 for(int i=1;i<=n;++i) 94 for(int j=1;j<=n;++j) 95 d2[i]=INF; 96 d2[k]=0; 97 q.push(k); 98 while(!q.empty()) 99 { 100 int u=q.front(); 101 q.pop(); 102 v[u]=0; 103 for(int i=head2[u];i;i=e2[i].next) 104 { 105 int vi=e2[i].v; 106 int w=e2[i].w; 107 if(d2[vi]>d2[u]+w) 108 { 109 d2[vi]=d2[u]+w; 110 if(!v[vi]) 111 { 112 v[vi]=1; 113 q.push(vi); 114 } 115 } 116 } 117 } 118 } 119 void work() 120 { 121 bfs1(); 122 bfs2(); 123 int ans=0; 124 for(int i=1;i<=n;++i) 125 ans=max(ans,d1[i]+d2[i]); 126 printf("%d",ans); 127 } 128 int main() 129 { 130 //input(); 131 read(); 132 work(); 133 return 0; 134 }
原文地址:https://www.cnblogs.com/Achensy/p/11008788.html
- 【干货】不止准确率:为分类任务选择正确的机器学习度量指标(附代码实现)
- python爬虫beautifulsoup4系列1
- 区块链入门教程
- python爬虫beautifulsoup4系列2
- python爬虫beautifulsoup4系列3
- 多元回归模型
- C++ STL之min_element()与max_element()(取容器中的最大最小值)
- RESTful API 设计最佳实践
- python爬虫beautifulsoup4系列4-子节点
- 元胞自动机实现多数分类算法
- 51Nod 1289 大鱼吃小鱼(模拟,经典好题)
- 用Metaclass实现一个精简的ORM框架
- HDU 2504 又见GCD(最大公约数与最小公倍数变形题)
- Selenium2+python自动化63-二次封装(click/send_kesy)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php+ajax 文件上传代码实例
- PHP将整数数字转换为罗马数字实例分享
- PHP如何通过表单直接提交大文件详解
- PHP基于openssl实现的非对称加密操作示例
- python图片验证码识别最新模块muggle_ocr的示例代码
- virtualenv介绍及简明教程
- Keras 数据增强ImageDataGenerator多输入多输出实例
- TensorFlow中如何确定张量的形状实例
- 使用Dajngo 通过代码添加xadmin用户和权限(组)
- python和js交互调用的方法
- Python中flatten( ),matrix.A用法说明
- python中id函数运行方式
- CentOS 7如何实现定时执行python脚本
- PHP自动生成缩略图函数的源码示例
- 解决tensorflow 释放图,删除变量问题