1. #include<cstdio>
  2. #include<iostream>
  3. #define M 400009
  4. #define ll long long
  5. using namespace std;
  6. ll d[M],v[M],ans1;
  7. int n,cnt=,head[M],next[M],u[M],mx,f[M],q[M],ans,mx1,fro[M],from[M],sum[M];
  8. void jia(int a1,int a2,int a3)
  9. {
  10. cnt++;
  11. from[cnt]=a1;
  12. next[cnt]=head[a1];
  13. head[a1]=cnt;
  14. u[cnt]=a2;
  15. v[cnt]=(ll)(a3)*(ll)(n);
  16. return;
  17. }
  18. void bfs(int a1)
  19. {
  20. d[a1]=;
  21. int h=,t=;
  22. q[]=a1;
  23. f[a1]=;
  24. fro[a1]=;
  25. sum[a1]=;
  26. for(;h<t;)
  27. {
  28. int p=q[++h];
  29. for(int i=head[p];i;i=next[i])
  30. if(!f[u[i]])
  31. {
  32. f[u[i]]=;
  33. q[++t]=u[i];
  34. d[u[i]]=d[p]+v[i];
  35. fro[u[i]]=i;
  36. sum[u[i]]=sum[p]+;
  37. }
  38. }
  39. return;
  40. }
  41. int main()
  42. {
  43. scanf("%d",&n);
  44. for(int i=;i<n;i++)
  45. {
  46. int a1,a2,a3;
  47. scanf("%d%d%d",&a1,&a2,&a3);
  48. jia(a1,a2,a3);
  49. jia(a2,a1,a3);
  50. }
  51. bfs();
  52. ll max1=;
  53. for(int i=;i<=n;i++)
  54. {
  55. if(max1<d[i])
  56. {
  57. max1=d[i];
  58. mx1=i;
  59. }
  60. f[i]=;
  61. }
  62. bfs(mx1);
  63. max1=;
  64. for(int i=;i<=n;i++)
  65. {
  66. if(max1<d[i])
  67. {
  68. max1=d[i];
  69. ans=i;
  70. }
  71. f[i]=;
  72. }
  73. ans1=d[ans];
  74. printf("%lld\n",d[ans]/n);
  75. for(;ans;)
  76. {
  77. int p=fro[ans];
  78. v[p]--;
  79. v[p^]--;
  80. ans=from[p];
  81. }
  82. bfs();
  83. max1=;
  84. for(int i=;i<=n;i++)
  85. {
  86. if(max1<d[i])
  87. {
  88. max1=d[i];
  89. mx1=i;
  90. }
  91. f[i]=;
  92. }
  93. bfs(mx1);
  94. max1=;
  95. for(int i=;i<=n;i++)
  96. if(max1<d[i])
  97. {
  98. max1=d[i];
  99. ans=i;
  100. }
  101. printf("%lld\n",ans1-d[ans]);
  102. return ;
  103. }

先找一条直径,把直径上的边的权值减去1,再找一遍直径,差便是答案。

bzoj 3124: [Sdoi2013]直径的更多相关文章

  1. Bzoj 3124: [Sdoi2013]直径 题解

    3124: [Sdoi2013]直径 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1222  Solved: 580[Submit][Status] ...

  2. bzoj 3124 [Sdoi2013]直径(dfs)

    Description 小Q最近学习了一些图论知识.根据课本,有如下定义.树:无回路且连通的无向图,每条边都有正整数的权值来表示其长度.如果一棵树有N个节点,可以证明其有且仅有N-1 条边. 路径:一 ...

  3. 3124: [Sdoi2013]直径

    3124: [Sdoi2013]直径 https://www.lydsy.com/JudgeOnline/problem.php?id=3124 分析: 所有直径都经过的边,一定都是连续的一段.(画个 ...

  4. bzoj千题计划134:bzoj3124: [Sdoi2013]直径

    http://www.lydsy.com/JudgeOnline/problem.php?id=3124 第一问: dfs1.dfs2 dfs2中记录dis[i]表示点i距离最长链左端点的距离 第二问 ...

  5. bzoj3124: [Sdoi2013]直径 树形dp two points

    题目链接 bzoj3124: [Sdoi2013]直径 题解 发现所有直径都经过的边 一定在一条直径上,并且是连续的 在一条直径上找这段区间的两个就好了 代码 #include<map> ...

  6. [洛谷P3304] [SDOI2013]直径

    洛谷题目链接:[SDOI2013]直径 题目描述 小Q最近学习了一些图论知识.根据课本,有如下定义.树:无回路且连通的无向图,每条边都有正整数的权值来表示其长度.如果一棵树有N个节点,可以证明其有且仅 ...

  7. 【BZOJ3124】[Sdoi2013]直径 树形DP(不用结论)

    [BZOJ3124][Sdoi2013]直径 Description 小Q最近学习了一些图论知识.根据课本,有如下定义.树:无回路且连通的无向图,每条边都有正整数的权值来表示其长度.如果一棵树有N个节 ...

  8. BZOJ_3124_[Sdoi2013]直径_树形DP

    BZOJ_3124_[Sdoi2013]直径_树形DP Description 小Q最近学习了一些图论知识.根据课本,有如下定义.树:无回路且连通的无向图,每条边都有正整数的权值来表示其长度.如果一棵 ...

  9. bzoj 3124 直径

    Written with StackEdit. Description 小\(Q\)最近学习了一些图论知识.根据课本,有如下定义. 树:无回路且连通的无向图,每条边都有正整数的权值来表示其长度.如果一 ...

随机推荐

  1. Normalize.css 与 reset.css

    Normalize.css 与 reset.css都是初始化页面样式 不同点在于 reset.css更加粗暴,直接把所有的样式全部初始化了: Normalize.css还剩点良心,还保留了一些浏览器默 ...

  2. 介绍kali下的一些小工具

    1.macchanger 可以用来修改你的mac地址

  3. nodejs框架express准备登录

    目录: 安装模板 静态资源 添加视图 渲染视图 url重定向 模板引擎 从本节课程开始我们要使用express框架实现一个简单的用户登陆功能,让我们先准备一下相关资源. 在nodejs中使用expre ...

  4. An internal error occurred during: "Building workspace".

    当在eclipse中的web工程中增加了extjs4,出现An internal error occurred during: "Building workspace". Java ...

  5. 关于学习Knockoutjs--入门(二)

    这两天终于闲一丢丢了,可以有多点时间学习一下拉.接下来要写到的还是Knockoutjs. Knockout是建立在以下3个核心功能之上的: 1. 属性监控与依赖跟踪 2. 声明式绑定 3. 模版机制 ...

  6. win api 实现 AES加密、解密

    WCHAR szPasswod[] = {L"goodpasswod" }; HCRYPTHASH hHash; HCRYPTPROV hCryptProv; HCRYPTKEY ...

  7. 点击checkbox,触发事件

    时间选择: 起始时间:<input type="text" value="2016-03-21 12:24:10" id="starttime& ...

  8. IBM DB2 For Linux安装指南(转)

    一.安装前准备工作: 1.对于Linux系统,需要安装以下软件包: 2.Linux内核设置: 编辑/etc/sysctl.conf文件,加入如下内容: 3.创建相应用户以及组: 官方文档给出必须创建三 ...

  9. 20145227&20145201 《信息安全系统设计基础》实验二 固件开发

    北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:1452 姓名:(按贡献大小排名)鄢曼君 李子璇 学号:(按贡献大小排名)20145227 20145201 成绩: ...

  10. 查看oracle被锁的表

    SELECT /*+ rule*/ a.sid, b.owner, object_name, object_type FROM v$lock a, all_objects b WHERE TYPE = ...