3361: [Usaco2004 Jan]培根距离
时间:2022-05-08
本文章向大家介绍3361: [Usaco2004 Jan]培根距离,主要内容包括3361: [Usaco2004 Jan]培根距离、Description、Input、Output、Sample Input、Sample Output、HINT、Source、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
3361: [Usaco2004 Jan]培根距离
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 16 Solved: 13
Description
贝茜和其他奶牛联系是通过一连串的中间奶牛传递的,所以当第一头牛和贝茜联系,第二头牛和第一头牛联系,第三头牛和第二头牛联系,…一贝茜就能依次联系到其中的每一头奶牛. 联系长度是指传递过程中涉及的奶牛的数目(不包括贝茜).任何一头奶牛(不包括贝茜)的培根距离是指从贝茜到该奶牛的最小联系长度.最小的培根距离是1(当贝茜能够直接与该奶牛联系时).约输有C头牛,编号1到C,贝茜是1号.有P(1≤P≤10000)组奶牛相互联系.请找到最大的培根距离.
Input
第1行:C和P.
第2到P+1行:每行两头牛,它们之间有联系.
Output
输出最大培根距离.
Sample Input
6 7 1 2 2 3 2 4 3 4 3 5 4 5 6 5
Sample Output
4 样例说明 从贝茜到6奶牛的距离是4.联系路径(2,4,5,6)和(2,3,5,6)都适合
HINT
Source
题解:spfa模板题,水水哒
在这个里面加入了一个新的优化方法,昨天在wnjxyk的空间里面看到的(OTLwnjxyk),在spfa入队前,可以在队列内的值进行判重操作,这样子可以提高速度,而且必要时可以起到压缩队列所用空间的作用,可以将队列有效长度控制在N以内,这样子必要时只需要开一个循环队列即可解决空间问题,GET!!!(OTLwnjxyk)
1 type
2 point=^node;
3 node=record
4 g,w:longint;
5 next:point;
6 end;
7 var
8 i,j,k,l,m,n,f,r:longint;
9 p:point;
10 a:array[0..100000] of point;
11 b,c:array[0..100000] of longint;
12 d:array[0..1000000] of longint;
13 procedure add(x,y,z:longint);inline;
14 var p:point;
15 begin
16 new(p);p^.g:=y;p^.w:=z;
17 p^.next:=a[x];a[x]:=p;
18 end;
19 begin
20 readln(n,m);
21 for i:=1 to n do a[i]:=nil;
22 for i:=1 to m do
23 begin
24 readln(j,k);
25 add(j,k,1);add(k,j,1);
26 end;
27 fillchar(b,sizeof(b),0);
28 fillchar(c,sizeof(c),0);
29 fillchar(d,sizeof(d),0);
30 f:=1;r:=2;
31 d[1]:=1;c[1]:=1;b[1]:=1;
32 while f<r do
33 begin
34 p:=a[d[f]];
35 while p<>nil do
36 begin
37 if ((b[p^.g]=0) or ((b[p^.g]=1) and (b[p^.g]>(b[d[f]]+p^.w)))) and (c[p^.g]=0) then
38 begin
39 b[p^.g]:=b[d[f]]+p^.w;
40 c[p^.g]:=1;
41 d[r]:=p^.g;
42 inc(r);
43 end;
44 p:=p^.next;
45 end;
46 c[d[f]]:=0;
47 inc(f);
48 end;
49 for i:=1 to n do dec(b[i]);
50 l:=0;
51 for i:=1 to n do if b[i]>l then l:=b[i];
52 writeln(l);
53 end.
- 将磁盘误挂载到根分区下的问题处理记录
- python文件读写出现乱码总结
- 分布式监控系统Zabbix-图形集中展示插件Graphtree
- 分布式监控系统Zabbix-添加windows监控主机
- 盘点世界十大著名黑客攻击事件
- AS3中的单件(Singleton)模式
- puremvc框架之hello world!
- windows平台下编辑的内容传到linux平台出现中文乱码的解决办法
- puremvc框架之Command
- python sorted函数
- Centos 6.9下部署Oracle 11G数据库环境的操作记录
- puremvc框架之proxy
- Oracle数据库冷备份与热备份操作梳理
- Oracle数据库重做日志及归档日志的工作原理说明
- 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 数组属性和方法
- 再也不用怕面试问二叉树了
- Redux快速上手
- CSP
- Saltstack_使用指南07_远程执行-执行模块
- 学习从拥有一支好笔开始
- Saltstack_使用指南08_远程执行-返回程序
- 人生苦短,何不用vim装13
- Saltstack_使用指南09_远程执行-编写执行模块
- 如何安装FreeIPA
- 编译及使用hive-testbench生成Hive基准测试数据
- 树酱的前端知识体系构建(下)
- Babel配置傻傻看不懂?
- Saltstack_使用指南10_配置管理-状态模块
- Saltstack_使用指南11_配置管理-状态之间依赖关系 4.1. 部署架构4.2. Apache和PHP的SLS【正向依赖】4.3. mariadb 的 SLS
- 前端工程化之CICD那点破事