题目:

这题意。。。还以为他说的线段是路径

写了好久的dp。。写不出来

看了网上的题解。。才知道就是两点连线

然后就是一般的平面图转对偶图的思想

然后算一下边数发现是颗树,求一下直径就好了

代码:

#include <bits/stdc++.h>
using namespace std;
#define mo 5000007
int n,c,d,e,l,ans,head[];
int len1[],len2[];
struct re{
int x,y,c;
}pd[];
struct {
int a,b;
}a[];
void insert(int x,int y,int z)
{
int tmp=((*x+y)%mo+mo)%mo;
while (pd[tmp].x) tmp=tmp%mo+;
pd[tmp].x=x; pd[tmp].y=y; pd[tmp].c=z;
}
int find(int x,int y)
{
int tmp=((*x+y)%mo+mo)%mo;
while (!(pd[tmp].x==x&&pd[tmp].y==y)&&pd[tmp].x) tmp=tmp%mo+;
if (pd[tmp].x==x&&pd[tmp].y==y) return(pd[tmp].c);
else return -;
}
void arr(int x,int y)
{
a[++l].a=head[x];
a[l].b=y;
head[x]=l;
}
void dfs(int x,int fa)
{
int u=head[x];
while (u)
{
int v=a[u].b;
if (v!=fa)
{
dfs(v,x);
if (len1[v]>len1[x])
{
len2[x]=len1[x];
len1[x]=len1[v];
} else
if (len1[v]>len2[x])
{
len2[x]=len1[v];
}
}
u=a[u].a;
}
len1[x]++;
ans=max(ans,len1[x]+len2[x]);
}
int main()
{
cin>>n;
for (int i=;i<=n-;i++)
{
cin>>c>>d>>e;
int x1=find(c,d);
int x2=find(c,e);
int x3=find(d,e);
if (x1==-) insert(c,d,i),insert(d,c,i);
else arr(x1,i),arr(i,x1);
if (x2==-) insert(c,e,i),insert(e,c,i);
else arr(x2,i),arr(i,x2);
if (x3==-) insert(d,e,i),insert(e,d,i);
else arr(x3,i),arr(i,x3);
}
dfs(,);
cout<<ans;
}

[ZJOI2012]旅游的更多相关文章

  1. [洛谷P2610] [ZJOI2012]旅游

    洛谷题目链接:[ZJOI2012]旅游 题目描述 到了难得的暑假,为了庆祝小白在数学考试中取得的优异成绩,小蓝决定带小白出去旅游~~ 经过一番抉择,两人决定将T国作为他们的目的地.T国的国土可以用一个 ...

  2. [ZJOI2012]旅游(树的直径)

    [ZJOI2012]旅游 题目描述 到了难得的暑假,为了庆祝小白在数学考试中取得的优异成绩,小蓝决定带小白出去旅游~~ 经过一番抉择,两人决定将T国作为他们的目的地.T国的国土可以用一个凸N边形来表示 ...

  3. [bzoj2657][Zjoi2012]旅游 journey_ 对偶图_树形dp

    旅游 bzoj-2657 Zjoi-2012 题目大意:题目链接 注释:$1\le K\le 2\cdot 10^5$. 想法:这题... 感觉和上一个题的提示有些类似,就是题目生怕你不知道这是一道对 ...

  4. P2610 [ZJOI2012]旅游

    题目描述 到了难得的暑假,为了庆祝小白在数学考试中取得的优异成绩,小蓝决定带小白出去旅游~~ 经过一番抉择,两人决定将T国作为他们的目的地.T国的国土可以用一个凸N边形来表示,N个顶点表示N个入境/出 ...

  5. BZOJ2657:[ZJOI2012]旅游——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=2657 https://www.luogu.org/problemnew/show/P2610 到了难 ...

  6. BZOJ2657 [Zjoi2012]旅游(journey) 【树的直径】

    题目 到了难得的暑假,为了庆祝小白在数学考试中取得的优异成绩,小蓝决定带小白出去旅游~~ 经过一番抉择,两人决定将T国作为他们的目的地.T国的国土可以用一个凸N边形来表示,N个顶点表示N个入境/出境口 ...

  7. P2610 [ZJOI2012]旅游 树的直径

    这个题就是建图不太好建,但是我们一想,三角形貌似只能两两挨着,最后会变成一个二叉树,所以问题就变成求树的直径.建图用pair套map超级简单. 题干: 到了难得的暑假,为了庆祝小白在数学考试中取得的优 ...

  8. 【题解】P2610 [ZJOI2012]旅游

    link 题意 T国的国土可以用一个凸N边形来表示,包含 \(N-2\) 个城市,每个城市都是顶点为 \(N\) 边形顶点的三角形,两人的旅游路线可以看做是连接N个顶点中不相邻两点的线段.问一路能经过 ...

  9. bzoj2657: [Zjoi2012]旅游(journey)

    求树的直径 真是太神辣 #include<cstdio> #include<cstring> #include<cstdlib> #include<algor ...

随机推荐

  1. HTML5视频播放插件Video.js使用详解

    一.Video.js简介 Video.js 是一个开源的 Html5 jquery 视频插件,这个插件可以用来处理 Flash 视频,它还是一个多平台支持的产品. Moreover,YouTube,V ...

  2. Java基础编程题——素数

    package com.yangzl.basic; /** * 判断101-200之间有多少个素数,并输出所有素数. * @author Administrator * */ /*程序分析:判断素数的 ...

  3. json 不能 dumps datetime 解决办法

    backend.myviews.json_time.py from datetime import date import json from datetime import datetime cla ...

  4. C# 密封类使用sealed修饰

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace @sea ...

  5. Linux之Ubuntu与Windows更改默认启动顺序[转载]

    装双系统后,经常会遇到与Windows更改默认启动顺序的需要,这样有助于开机时可以避免手动选择经常使用的系统了. 当然这解决办法不是博主的主意,本文纯属抄録者,故文章题目也声明了是转载,解决方案如下叙 ...

  6. [NOIP2012提高]借教室 题解(二分答案+差分)

    [NOIP2012提高&洛谷P1083]借教室 Description 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室 ...

  7. MHA-手动Failover流程(传统复制&GTID复制)

    本文仅梳理手动Failover流程.MHA的介绍详见:MySQL高可用架构之MHA 一.基本环境 1.1.复制结构 VMware10.0+CentOS6.9+MySQL5.7.21 ROLE HOST ...

  8. map_server地图服务器

    http://wiki.ros.org/map_server 概述 map_server提供map_server ROS节点,它提供地图数据作为一个ROS服务器.也提供map_saver命令行功能,能 ...

  9. 第一个FPGA工程—LED流水灯

    这一章我们来实现第一个FPGA工程-LED流水灯.我们将通过流水灯例程向大家介绍一次完整的FPGA开发流程,从新建工程,代码设计,综合实现,管脚约束,下载FPGA程序.掌握本章内容,大家就算正式的开始 ...

  10. 【转】Linux中常见问题(磁盘 定时任务)

    [转]Linux中常见问题(磁盘 定时任务) 第1章 linux无法上网 1)     第一步,先ping域名. ping www.baidu.com 2)再ping一个公网ip , ping 223 ...