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(链接表+树的直径)的更多相关文章

  1. poj2631 求树的直径裸题

    题目链接:http://poj.org/problem?id=2631 题意:给出一棵树的两边结点以及权重,就这条路上的最长路. 思路:求实求树的直径. 这里给出树的直径的证明: 主要是利用了反证法: ...

  2. poj1985 Cow Marathon (求树的直径)

    Cow Marathon Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 3195   Accepted: 1596 Case ...

  3. VIJOS1476旅游规划[树形DP 树的直径]

    描述 W市的交通规划出现了重大问题,市政府下决心在全市的各大交通路口安排交通疏导员来疏导密集的车流.但由于人员不足,W市市长决定只在最需要安排人员的路口安放人员.具体说来,W市的交通网络十分简单,它包 ...

  4. poj2631 树的直径

    设s-t是这棵树的直径,那么对于任意给予的一点,它能够到达的最远的点是s或者t. 这样我们可以通过2次bfs找到树的直径了. #include<cstdio> #include<qu ...

  5. 【BZOJ-1912】patrol巡逻 树的直径 + DFS(树形DP)

    1912: [Apio2010]patrol 巡逻 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 1034  Solved: 562[Submit][St ...

  6. 牡丹江.2014B(图论,树的直径)

    B - Building Fire Stations Time Limit:5000MS     Memory Limit:131072KB     64bit IO Format:%lld & ...

  7. hdu 4607 Park Visit 求树的直径

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4607 题目大意:给你n个点,n-1条边,将图连成一棵生成树,问你从任意点为起点,走k(k<=n) ...

  8. [USACO2004][poj1985]Cow Marathon(2次bfs求树的直径)

    http://poj.org/problem?id=1985 题意:就是给你一颗树,求树的直径(即问哪两点之间的距离最长) 分析: 1.树形dp:只要考虑根节点和子节点的关系就可以了 2.两次bfs: ...

  9. BZOJ 2282 & 树的直径

    SDOI2011的Dayx第2题 题意: 在树中找到一条权值和不超过S的链(为什么是链呢,因为题目中提到“使得路径的两端都是城市”,如果不是链那不就不止两端了吗——怎么这么机智的感觉...),使得不在 ...

随机推荐

  1. mysql关于or的索引问题

    摘自: http://www.educity.cn/wenda/590849.html http://blog.csdn.net/hguisu/article/details/7106159 问: 不 ...

  2. 1.注册或登录页面设计:UILabel,UIButton,UITextField

    学习iOS开发已经有一段时日了,之前一直没有系统的对iOS开发的相关知识进行归纳总结,导致很多知识点云里雾里在脑子里形不成iOS开发的思想,现将自己在学习过程中遇到的一些知识进行总结,希望能对iOS初 ...

  3. work flow

  4. poj 3083 Children of the Candy Corn

    点击打开链接 Children of the Candy Corn Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8288 ...

  5. CentOS的安装与克隆

    CentOS的安装与克隆 环境说明 win7 x64位:VMware12:CentOS-6.5-x86_64-minimal 安装与初始配置 安装 在WM主页--“创建新的虚拟机”--自定义--... ...

  6. 关于sublime text2

    转自:http://www.qianduan.net/essential-to-sublime-the-text-2-plugins.html Sublime Text 2是一个轻量.简洁.高效.跨平 ...

  7. 并发:OPP 响应超并发:OPP 响应超时

    用户提交报表,无法正常结束,报表日志中有如下消息: “正在执行请求完成选项... +------------- 1) PUBLISH -------------+ 节点 FIN1 上的请求 29884 ...

  8. 剑指Offer:面试题28——字符串的排列(java实现)(待序)

    问题描述: 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 结果请按字母 ...

  9. uniDBGrid导入数据库(转红鱼儿)

    有朋友问如何将excel导入数据库,这是我做的uniGUI项目中代码,实现uniDBGrid导入数据库的函数,因为用了kbmMW,所以你看到是将uniDBGrid导入kbmMWClientQuery, ...

  10. VC++双缓冲保持背景不擦除之实现

    几天前,我终于克服了C++窗体重绘时的闪烁问题,用到的技巧就是双缓冲.但是怎样保持住已经绘制的图形呢?也就是仿照Windows自带的画图程序一般,动态的做出一条直线.最容易想到的方法是在MouseMo ...