LGOJ5022 旅行 noip tg 2018
旅行
标签(空格分隔): noip2018 提高组
今天我给大家带来一份题解。
题目的大大致意思是这样的:
$$ 有一颗 树/基环树 求最小遍历顺序 $$
树的情况自然不必多讲。做一些末端的微处理(将每个点的邻接点排序)即可。
而基环树呢?这是我们就要普及一下基环树的知识了。
\]
SO
如何处理??
来,边看代码边讲!
#include<bits/stdc++.h>
using namespace std;
const int maxn = 5e3+5;
int n,m,x,y,dep;
vector <int> e[maxn]; //ling'jie'biao'cun'bian
int tmp[maxn],ans[maxn],cnt,rd[maxn];
bool Tre[maxn],vis[maxn],done[maxn][maxn];
struct edge{
int x,y;
}del;
void dfs(int pos){
if(dep>n)return;
tmp[dep]=pos;vis[pos]=1;
for(int i=0;i<e[pos].size();i++){
int next=e[pos][i];
if((del.x == pos && del.y == next) || (del.x == next && del.y == pos))
continue;
if(!vis[next]){
vis[next]=1;
dep++;
dfs(next);
}
}
}
void top(){
queue<int>q;
for(int i=1;i<=n;i++){
if(rd[i]==1){
Tre[i]=1;
rd[i]--;
q.push(i);
}
}
while(!q.empty()){
int x=q.front();q.pop();
Tre[x]=1;
for(int j=0;j<e[x].size();j++){
int y=e[x][j];
rd[y]--;
if(rd[y]==1){
q.push(y);
}
}
}
return ;
}
bool check(){
for(int i=1;i<=n;i++){
if(ans[i] == tmp[i]){
continue;
}
if(ans[i] < tmp[i]){
return false;
}
if(ans[i] > tmp[i]){
return true;
}
}
}
void update(){
if(ans[1]==0){
for(int i=1;i<=n;i++){
ans[i]=tmp[i];
}
}
else if(check()){
for(int i=1;i<=n;i++){
ans[i]=tmp[i];
}
}
}
void out(){
for(int i=1;i<=n;i++){
printf("%d ",ans[i]);
}
return ;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){
scanf("%d%d",&x,&y);
e[x].push_back(y);rd[y]++;
e[y].push_back(x);rd[x]++;
}
for(int i=1;i<=n;i++){
sort(e[i].begin(),e[i].end());
}
if(m == n-1){
dep = 1;
Tre[1]=true;
dfs(1);
update();
}
else {
top();
for(int i=1;i<=n;i++){
if(!Tre[i]){
for(int j=0;j<e[i].size();j++){
if(!Tre[e[i][j]]){
del.x = i;
del.y = e[i][j];
if(done[del.x][del.y]){
continue;
}
done[del.x][del.y]=done[del.y][del.x]=1;
memset(vis,0,sizeof(vis));
vis[1]=true;dep=1;dfs(1);
update();
}
}
}
}
}
out();
return 0;
}
LGOJ5022 旅行 noip tg 2018的更多相关文章
- 开车旅行 [NOIP 2012]
Description 小A 和小B决定利用假期外出旅行,他们将想去的城市从1到N 编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市 i的海拔高度为Hi,城市 i ...
- 【NOIP TG 解方程】
存代码: #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> ...
- noip训练 2018.10.22~2018.10.23
day1 100+100+0=200 T1 稍微比划一下,发现其实就是缩点双,然后区间最小值的和 T2 发现答案为原lis|+1|-1 对每个点做从前最长上升序列以及从后最长下降序列, 想了半个小时怎 ...
- [NOIP2018 TG D2T1]旅行
题目大意:$NOIP\;TG\;D2T1$ 题解:一棵树的很简单,第一个点一定是$1$,只需要对每个节点,找最小的没有访问过的节点访问即可,我写的是$O(n\log_2n)$. 考虑基环树的部分,一个 ...
- 历年真题 未完成(Noip 2008 - Noip 2017)
Noip 2008 :全部 Noip 2009 :全部 Noip 2010 :AK Noip 2011 :AK Noip 2012 : Vigenère 密码,国王游戏,开车旅行 Noip 2013 ...
- NOIP赛前集训备忘录(含每日总结)(日更?。。。)
NOIP赛前集训备忘录(含每日考试总结) 标签: 有用的东西~(≧▽≦)/~啦啦啦 阅读体验:https://zybuluo.com/Junlier/note/1279194 考试每日总结(这个东西是 ...
- WC2019 20天训练
Day -1 2019.1.2 初步计划: 0x60 图论 std 洛谷提高剩余练习 NOIP2018遗留题解 洛谷省选基础练习 数学: 1.数论 2.组合数学(练习:莫比乌斯反演) 3.概率(练习: ...
- 【基础练习】【区间DP】codevs1090 加分二叉树题解
2003 NOIP TG 题目描写叙述 Description 设一个n个节点的二叉树tree的中序遍历为(l,2,3,-,n),当中数字1,2,3,-,n为节点编号.每一个节点都有一个分数(均为正整 ...
- CSP2019知识点整理
也算是接下来二十天的复习计划吧 仅止于联赛难度左右 基础算法 字符串 char[] cstring memset() 输入无& gets(), fgets(stdin, ,); strcmp, ...
随机推荐
- ORA-01078: failure in processing system parameters 问题的解决方法(oracle 11g)
https://blog.csdn.net/lzwgood/article/details/26358725
- C2. Pokémon Army (hard version) 解析(思維)
Codeforce 1420 C2. Pokémon Army (hard version) 解析(思維) 今天我們來看看CF1420C2 題目連結 題目 略,請直接看原題. 前言 根本想不到這個等價 ...
- Python爬虫之线程池
详情点我跳转 关注公众号"轻松学编程"了解更多. 一.为什么要使用线程池? 对于任务数量不断增加的程序,每有一个任务就生成一个线程,最终会导致线程数量的失控,例如,整站爬虫,假设初 ...
- js音乐播放器【简洁】
辞职的第二天没有去找工作还,准备回家. 但到了火车站才发现沃特玛的买的票不是在这个火车站坐. 这就耽误了行程...... 说出来真舒服!!!淦 代码 这里已经上传到码云了,大家可以直接引用. 目前只有 ...
- (二)http请求方法和状态码
1.HTTP请求方法 根据 HTTP 标准,HTTP 请求可以使用多种请求方法. HTTP1.0 定义了三种请求方法: GET.POST 和 HEAD方法. HTTP1.1 新增了六种请求方法:OPT ...
- Android操作系统及APP
1. Android操作系统 1.1. 介绍 Android操作系统最初由Andy Rubin开发,主要支持手机.2005年8月由Google收购注资.第一部Android智能手机发布于2008 ...
- python开发基础(二)运算符以及数据类型之list(列表)
# encoding: utf-8 # module builtins # from (built-in) # by generator 1.147 """ Built- ...
- k8s event监控利器kube-eventer对接企微告警
背景 监控是保障系统稳定性的重要组成部分,在Kubernetes开源生态中,资源类的监控工具与组件监控百花齐放. cAdvisor:kubelet内置的cAdvisor,监控容器资源,如容器cpu.内 ...
- JS仿贪吃蛇:一串跟着鼠标的Div
贪吃蛇是一款80后.90后比较熟悉的经典游戏,下面通过简单的JS代码来实现低仿版贪吃蛇效果:随着鼠标的移动,在页面中呈现所有Div块跟随鼠标依次移动,效果如下图所示. <!DOCTYPE htm ...
- mybatis foreach collection
原文传递:https://blog.csdn.net/qq_24084925/article/details/53790287 foreach元素的属性主要有 item,index,collectio ...