题目

求一条简单路径使得路径端点不能再被延伸


分析

一开始想到可能和度数有关,其实没必要,

随便以一个点作为路径中的点深搜两次即可


代码

#include <cstdio>
#include <cctype>
#include <algorithm>
#define rr register
using namespace std;
const int N=100011;
struct node{int y,next;}e[N<<1];
int b[2][N],v[N],as[N],n,et;
inline signed iut(){
rr int ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
inline void print(int ans){
if (ans>9) print(ans/10);
putchar(ans%10+48);
}
inline void dfs(int x,int z){
b[z][++b[z][0]]=x,v[x]=1;
for (rr int i=as[x];i;i=e[i].next)
if (!v[e[i].y]) {dfs(e[i].y,z); break;}
}
signed main(){
n=iut(),et=1;
for (rr int m=iut();m;--m){
rr int x=iut(),y=iut();
e[++et]=(node){y,as[x]},as[x]=et;
e[++et]=(node){x,as[y]},as[y]=et;
}
dfs(1,0),dfs(1,1),print(b[0][0]+b[1][0]-1),putchar(10);
for (rr int i=b[0][0];i>1;--i) print(b[0][i]),putchar(32);
for (rr int i=1;i<=b[1][0];++i) print(b[1][i]),putchar(32);
return 0;
}

#搜索#AT2368 [AGC013B] Hamiltonish Path的更多相关文章

  1. [AGC013B] Hamiltonish Path

    个人思路: 随便从一个节点开始搜索,只要当前节点不满足条件,随便找一个与它有边相连,不在序列里的节点加入序列.因为要么中途停止,要么把所有节点遍历一遍,一定能找到一个端点. 我们直接从节点 \(1\) ...

  2. AT2368-[AGC013B]Hamiltonish Path【构造】

    正题 题目链接:https://www.luogu.com.cn/problem/AT2368 题目大意 给出 \(n\) 个点 \(m\) 条边的一张无向图,然后求一条路径满足 路径长度不小于二. ...

  3. HDOJ-三部曲一(搜索、数学)-1008-Prime Path

    Prime Path Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total S ...

  4. node搜索codeforces 3A - Shortest path of the king

    发一下牢骚和主题无关: 搜索,最短路都可以     每日一道理 人生是洁白的画纸,我们每个人就是手握各色笔的画师:人生也是一条看不到尽头的长路,我们每个人则是人生道路的远足者:人生还像是一块神奇的土地 ...

  5. (广度搜索)A - Prime Path(11.1.1)

    A - Prime Path(11.1.1) Time Limit:1000MS    Memory Limit:65536KB    64bit IO Format:%I64d & %I64 ...

  6. Python3基础 sys.path.append 增加模块的搜索路径

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  7. MyEclipse Java Build Path详解

    转载自:http://blog.163.com/magicc_love/blog/static/185853662201111161580631/ 1.设置"source folder&qu ...

  8. eclipse中的项目Java build path (Java创建路径)详解

    1.Source标签页,指定本工程的源码目录和输出目录.Projects标签页,指定本工程所依赖的其他工程.Libraries标签页,指定本工程所需的jar包和class目录等.Order And E ...

  9. python基础:搜索路径

    如何将写好的脚本或者是模块加入python的搜索路径? >>>import sys >>> sys.path ['', '/Library/Frameworks/P ...

  10. build path功能详解

    在项目上右键>Build path>Config build path “web project”中,一般把"src"设置为source folder,把WEB-INF ...

随机推荐

  1. 用random.simple来解决从0-99这100个数中随机取10个不重复的数

    语法: random.simple(list,k) 返回以长度为k的新列表,新列表存放list所产生k个随机不重复的元素 import random print(random.simple(range ...

  2. 前端保存JWT的使用方法

    我们可以将JWT保存在cookie中,也可以保存在浏览器的本地存储里,我们保存在浏览器本地存储中 浏览器的本地存储提供了sessionStorage 和 localStorage 两种,从属于wind ...

  3. SSH 客户端

    简介 OpenSSH 的客户端是二进制程序 ssh.它在 Linux/Unix 系统的位置是/usr/local/bin/ssh. Linux 系统一般都自带 ssh,如果没有就需要安装. # Ubu ...

  4. 【Azure API 管理】APIM中证书更新问题

    问题描述 每一年到期更新域名证书,APIM会中断服务,请问如何不中断服务? 问题解答 Azure API 管理允许在受信任的根证书和中间证书存储中的计算机上安装 CA 证书,分配证书的过程可能需要 1 ...

  5. 高性能图计算系统 Plato 在 Nebula Graph 中的实践

    本文首发于 Nebula Graph Community 公众号 1.图计算介绍 1.1 图数据库 vs 图计算 图数据库是面向 OLTP 场景,强调增删改查,并且一个查询往往只涉及到全图中的少量数据 ...

  6. Java 封装性的小练习

    1 package com.bytezero.test2; 2 3 public class Person 4 { 5 private int age; 6 7 public void setAge( ...

  7. VC-MFC(2) 随笔笔记

    1 //点击按钮出来对话框---------------- 2 3 1.首先添加 对话框(标识符) 4 2.在点击按钮出来第二个对话框,直接鼠标右键 新建 类 5 3.在.CPP添加新建类的 头文件 ...

  8. php-fpm进程过多,导致CPU过高

    今天发现服务器的php-fpm进程突然过多,导致CPU过高,其他项目的访问受到影响.我通过以下三个基本步骤定位到了问题,发现了其原因. 基本步骤: 先用top命令查看进程情况,找出cpu最高的进程pi ...

  9. (完美解决)chatGPT登陆正常却无法发送消息

    这几天要写关于项目的文字性材料,登陆上chatgpt,结果发现登陆正常,各方面都正常,但是点击发送消息就会不停转圈圈,无法发送出去,然后联想到之前看到朋友圈有人说chatGPT崩了,就没多在意,结果今 ...

  10. CMAKE的学习

    下面我们来介绍Cmake Cmake 我们着重介绍一下CMAKE,是因为CMAKE现在用的人比MAKEFILE多一些,也更好理解,编写一些. 1 安装 cmake 1.1 卸载已经安装的旧版的CMAK ...