[bzoj1301] [LLH邀请赛]参观路线
本题同bzoj1098
用个并查集,把连续的被访问过的点并起来。。这样就不会尝试已经走过的点了。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=,maxm=;
struct zs{
int too,pre;
}e[maxm<<],e1[maxm<<];int tot,last[maxn],tot1,last1[maxn];
int u[maxm],v[maxm];
int fa[maxn];
int i,j,k,n,m; inline void insert(int a,int b){
if(e[last[a]].too==b)return;
e[++tot].too=b,e[tot].pre=last[a],last[a]=tot;
}
inline void ins(int a,int b){
e1[++tot1].too=b,e1[tot1].pre=last1[a],last1[a]=tot1;
}
int getfa(int x){
return fa[x]!=x?fa[x]=getfa(fa[x]):x;
} void dfs(int x){
fa[x]=x+;
printf("%d\n",x);
int next=getfa();//printf(" next:%d\n",next); for(int i=last[x];i;i=e[i].pre){
while(next<e[i].too)
dfs(next),next=getfa(next+);
if(next==e[i].too)next=getfa(next+);
}
while(next<=n)dfs(next),next=getfa(next+);
} int ra;char rx;
inline int read(){
rx=getchar(),ra=;
while(rx<''||rx>'')rx=getchar();
while(rx>=''&&rx<='')ra*=,ra+=rx-,rx=getchar();return ra;
}
int main(){
n=read(),m=read();
for(i=;i<=m;i++)u[i]=read(),v[i]=read(),ins(v[i],i),ins(u[i],i);
for(i=n;i;fa[i]=i,i--)
for(j=last1[i];j;j=e1[j].pre)
if(j&)insert(u[e1[j].too],i);
else insert(v[e1[j].too],i);
// for(i=1;i<=n;i++)for(j=last[i];j;j=e[j].pre)printf("%d-->%d\n",i,e[j].too);//return 233;
fa[n+]=n+;
dfs();
return ;
}
[bzoj1301] [LLH邀请赛]参观路线的更多相关文章
- [LLL邀请赛]参观路线(图论+dfs)
emmmm....学校的oj被查水表了,扒不到原题面,所以.... 但是我还是扒到了题面... 题目大意:给定一个完全图,删掉其中一些边,然后求其字典序最小的遍历顺序 有点像去年day2T1啊.... ...
- 参观路线——并查集+dfs
题目描述 Lambdaland由N个城市组成,任两个城市间都有一条道路相连. 下个月TBL准备参观Lambdaland.他将从城市1开始,以深度优先搜索顺序参观能所有遍历到的城市. 由于TBL是一位 ...
- bzoj:1299: [LLH邀请赛]巧克力棒
原题:http://www.lydsy.com/JudgeOnline/problem.php?id=1299 众多dalao的题解已经很详细了:http://blog.csdn.net/wzq_qw ...
- BZOJ 1299: [LLH邀请赛]巧克力棒 [组合游戏]
每次一人可以从盒子里取出若干条巧克力棒,或是将一根取出的巧克力棒吃掉正整数长度. Nim游戏多了一个决策:拿出一些石堆 显然只要给对方构造异或和为0的子集就行了 暴枚子集... #include &l ...
- BZOJ1299: [LLH邀请赛]巧克力棒(Nim游戏)
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 552 Solved: 331[Submit][Status][Discuss] Descriptio ...
- BZOJ1299[LLH邀请赛]巧克力棒——Nim游戏+搜索
题目描述 TBL和X用巧克力棒玩游戏.每次一人可以从盒子里取出若干条巧克力棒,或是将一根取出的巧克力棒吃掉正整数长度.TBL先手两人轮流,无法操作的人输. 他们以最佳策略一共进行了10轮(每次一盒). ...
- BZOJ.1299.[LLH邀请赛]巧克力棒(博弈论 Nim)
题目链接 \(Description\) 两人轮流走,每次可以从盒子(容量给定)中取出任意堆石子加入Nim游戏,或是拿走任意一堆中正整数个石子.无法操作的人输.10组数据. \(Solution\) ...
- BZOJ1299 [LLH邀请赛]巧克力棒
怎么又是博弈论...我去 Orz hzwer,这道题其实是可以转化成Nim游戏的! "第一步: 先从n根巧克力棒中取出m(m>0)根,使得这m根巧克力棒的xor和为0,同时使得剩下的n ...
- BZOJ1300 [LLH邀请赛]大数计算器
一开始以为暴力搞,后来看了数据范围还以为要FFT,各种被虐,然后Orz Seter大神!!! 我只想到了前三位:a * b <=> 10^(log(a) + log(b)),于是把乘的数都 ...
随机推荐
- SPCircleView的使用(圆心向四周扩散动画)
今天封装了一个动画,想着以后可能会用,就封装了一下.欢迎下载 https://github.com/USimpleLife/SPCircleView 参数说明 @param centerPoint 中 ...
- LeetCode #1 TwoSum
Description Given an array of integers, return indices of the two numbers such that they add up to a ...
- Java I/O---获取文件目录并写入到文本
首先获取指定目录下的所有文件目录,存入List集合中,然后创建文本文件将List遍历写入文本中保存. 1.主程序类 public class Test { /** * @param args */ p ...
- Wincc flexable的画面浏览切换组态
1.新建项目和6个画面 2.双击导航控件设置,选择默认设置 3.使用画面浏览编辑器编辑画面层次切换关系,拖拽画面到编辑器中进行关系连接 4.保运并运行
- 框架原理第三讲,RTTCreate,运行时类型创建.(以MFC框架讲解)
框架原理第三讲,RTTCreate,运行时类型创建.(以MFC框架讲解) 通过昨天的讲解,我们已经理解了运行时类型识别是什么. 比如 CObject * pthis = (Cobject *)Cre ...
- 手动安装cloudera manager 5.x(tar包方式)详解
官方共给出了3中安装方式:第一种方法必须要求所有机器都能连网,由于最近各种国外的网站被墙的厉害,我尝试了几次各种超时错误,巨耽误时间不说,一旦失败,重装非常痛苦.第二种方法下载很多包.第三种方法对系统 ...
- 一个APP页面一个接口
目前所在的公司做的是健康产业方面的APP,这个产品包括了安卓和IOS还有web三方面,除了要写后台管理的系统外,还要写移动端的接口.第一次写移动端接口就犯了一个错误,以为和web一样是怎么方便怎么来, ...
- bzoj 3670: [Noi2014]动物园
Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习 ...
- Thinkphp环境搭建
一.准备工作-基础知识 1.php环境配置 配置php文件运行环境Apache,phpstudy集成环境(还有别的集成环境都可以). 2.设计数据库 根据需求设计table,可以用一些数据库管理工具n ...
- python:发送消息给微信企业号
# -*- coding:utf-8 -*- import requests import json ''' 基础环境:微信企业号 version:python 2.7 ''' class Send_ ...