2227 邮票--FUoj(链接表+树的直径)
http://acm.fzu.edu.cn/problem.php?pid=2227
我感觉这道题可以随意搞
题目大意: 给你的一个图就是一条链,但是不知道起始点和结束点,而且每个点只会访问一次。
因为数太大了 只能用邻接表保存。
我不知不觉的用了树的直径 代码写的太乱了 但是是我自己写的,虽然这道题真的不难,但是还是很开心
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
#include<iostream>
#include<queue> using namespace std;
#define N 201000
#define pi acos(-1.0)
#define ESP 1e-8 int head[N],ans,sum,vis[N],s1[N];
int x[N],y[N],a[N];
struct node
{
int v,next;
}e[N]; void Add(int u,int v)
{
e[ans].v=v;
e[ans].next=head[u];
head[u]=ans++;
} int index=;
void solve(int s)
{
index=s;
s1[sum++]=a[s];
for(int i=head[s];i!=-;i=e[i].next)
{
int v=e[i].v;
if(!vis[v])
{
vis[v]=;
solve(v);
}
}
} int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int cnt=;
for(int i=;i<n;i++)
{
scanf("%d %d",&x[i],&y[i]);
a[cnt++]=x[i];
a[cnt++]=y[i];
}
sort(a,a+cnt);
int len=unique(a,a+cnt)-a; memset(head,-,sizeof(head));
ans=;
for(int i=;i<n;i++)
{
int u=lower_bound(a,a+len,x[i])-a;
int v=lower_bound(a,a+len,y[i])-a; Add(u,v);
Add(v,u);
}
sum=;
memset(vis,,sizeof(vis));
vis[]=;
solve();
sum=;
memset(vis,,sizeof(vis));
vis[index]=;
solve(index);
if(s1[]>s1[sum-])
{
for(int i=sum-;i>=;i--)
printf("%d%c",s1[i],(i==?'\n':' '));
}
else
for(int i=;i<sum;i++)
printf("%d%c",s1[i],(i==sum-?'\n':' '));
}
return ;
}
2227 邮票--FUoj(链接表+树的直径)的更多相关文章
- poj2631 求树的直径裸题
题目链接:http://poj.org/problem?id=2631 题意:给出一棵树的两边结点以及权重,就这条路上的最长路. 思路:求实求树的直径. 这里给出树的直径的证明: 主要是利用了反证法: ...
- poj1985 Cow Marathon (求树的直径)
Cow Marathon Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 3195 Accepted: 1596 Case ...
- VIJOS1476旅游规划[树形DP 树的直径]
描述 W市的交通规划出现了重大问题,市政府下决心在全市的各大交通路口安排交通疏导员来疏导密集的车流.但由于人员不足,W市市长决定只在最需要安排人员的路口安放人员.具体说来,W市的交通网络十分简单,它包 ...
- poj2631 树的直径
设s-t是这棵树的直径,那么对于任意给予的一点,它能够到达的最远的点是s或者t. 这样我们可以通过2次bfs找到树的直径了. #include<cstdio> #include<qu ...
- 【BZOJ-1912】patrol巡逻 树的直径 + DFS(树形DP)
1912: [Apio2010]patrol 巡逻 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 1034 Solved: 562[Submit][St ...
- 牡丹江.2014B(图论,树的直径)
B - Building Fire Stations Time Limit:5000MS Memory Limit:131072KB 64bit IO Format:%lld & ...
- hdu 4607 Park Visit 求树的直径
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4607 题目大意:给你n个点,n-1条边,将图连成一棵生成树,问你从任意点为起点,走k(k<=n) ...
- [USACO2004][poj1985]Cow Marathon(2次bfs求树的直径)
http://poj.org/problem?id=1985 题意:就是给你一颗树,求树的直径(即问哪两点之间的距离最长) 分析: 1.树形dp:只要考虑根节点和子节点的关系就可以了 2.两次bfs: ...
- BZOJ 2282 & 树的直径
SDOI2011的Dayx第2题 题意: 在树中找到一条权值和不超过S的链(为什么是链呢,因为题目中提到“使得路径的两端都是城市”,如果不是链那不就不止两端了吗——怎么这么机智的感觉...),使得不在 ...
随机推荐
- Ubuntu16.04安装配置Eclipse 以及opencv的使用
安装配置http://www.oracle.com下载与自己电脑系统对应的JDK.我下载的是jdk-8u101-linux64.tar.gz 解压:sudo tar -zxvf jdk-8u101-l ...
- XAMPP(Linux版-x86兼容)官网下载
欢迎光临 XAMPP 的 Linux 版 (x86 兼容处理器版)顺便提一下:该软件以前被称作 LAMPP,但为了避免误解,我们将其重名命为 »XAMPP 的 Linux 版«.所以,如果您在寻找 L ...
- [IIS]IIS扫盲(三)
IIS扫盲贴 --==[精品]==-- IIS扫盲贴 --==[精品]==-- 2000对应iis5.0 xp对应iis5.1 2003对应iis6.0 作者: II ...
- 关于 presentViewController 时机
类似微信.QQ这些应用如果用户没有登录,会弹出登录界面,如果 presentViewController 是写在 viewDidAppear 之前,会有警告 Presenting view cont ...
- 获取body标签元素方法
方法一 doucumnet.body 方法二 document.getElementsByTagName("body")[0]
- js鼠标点击版tab切换
代码很简单,主要是布局需要用心研究下,使用时需要把css内注释去除 <!DOCTYPE html> <head> <meta http-equiv="Conte ...
- 9.S5PV210的时钟系统
1.时钟域:MSYS.DSYS.PSYS(1)因为S5PV210的时钟体系比较复杂,内部外设模块太多,因此把整个内部的时钟划分为3大块,叫做3个域.(2)MSYS: CPU(Cortex-A8内核). ...
- 32、shiro框架入门3.授权
一. 授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等).在授权中需了解的几个关键对象:主体(Subject).资源(Resource).权限(Permission ...
- 【转载】Java常量池
本篇随笔为转载,原贴地址:Java常量池理解与总结. (其实Java的常量池有点像C++中的存储字符串常量的常量存储区). 一.相关概念 什么是常量用final修饰的成员变量表示常量,值一旦给定就无法 ...
- 炫酷的时钟--canvas初体验
先啥也不说:来张效果图 我是根据:http://www.imooc.com/learn/133 这里的课程进行学习的.大大的感谢liuyubobobo老师的深入浅出的讲解!! 我在这里仅仅提供我自己的 ...