Wannafly挑战赛27B(DFS,链表头插法)
#include<bits/stdc++.h>
using namespace std;
int cnt=0;
int flag=0;
int to[400007],nex[400007],vis[100007],head[100007];
void add(int a,int b){//链表的头插法,nex数组开成next交的时候会编译错误
to[++cnt]=b;
nex[cnt]=head[a];
head[a]=cnt;
}
void dfs(int a,int b){
for(int i=head[a];i!=0;i=nex[i]){//遍历这个点的邻接点
int v=to[i];
if(v==b)//此前在b的邻接点中已经遍历过该情况
continue;
if(vis[v]){//说明有环
int x=vis[a];
if((x-vis[v]+1)&1)//环的长度为奇数,这个时候需要三种颜色
flag=1;
return;
}
vis[v]=vis[a]+1;
dfs(v,a);
}
}
int main(){
int n,m;
scanf("%d%d",&n,&m);
int x,y;
for(int i=1;i<=m;i++){
scanf("%d%d",&x,&y);
add(x,y);
add(y,x);
}
vis[1]=1;
dfs(1,0);
if(n==1)
printf("1");
else if(flag==1)
printf("3");
else if(flag==0)
printf("2");
return 0;
}
Wannafly挑战赛27B(DFS,链表头插法)的更多相关文章
- C语言链表头插法逆向输出
输入:1 2 3 4 5 -1 输出:5 4 3 2 1 此题考查头链表的创建之一 :头插法.所谓头插法是从一个空链表开始,重复读入数据,生成新结点,将读入的数据存放新结点的数据域中,然后讲新结点插入 ...
- [PHP] 数据结构-单链表头插法PHP实现
1.创建头结点 2.创建新结点 3.新结点next指向头结点next 4.头结点next指向新结点 <?php class Node{ public $data; public $next; } ...
- 数据结构—头插法逆转单链表——空间复杂度为O(1)
#if 1 #include<stdio.h> #include<stdlib.h> #include<iostream> using namespace std; ...
- c语言——单链表分拆——头插法创建链表,尾插法生成链表
#if 1 #include<stdio.h> #include<stdlib.h> #include<iostream> using namespace std; ...
- 牛客wannafly 挑战赛14 B 前缀查询(trie树上dfs序+线段树)
牛客wannafly 挑战赛14 B 前缀查询(trie树上dfs序+线段树) 链接:https://ac.nowcoder.com/acm/problem/15706 现在需要您来帮忙维护这个名册, ...
- Java解释单链表中的头插法以及尾插法
单链表属于数据结构中的一种基本结构,是一种线性结构,在此使用Java对其中的头插法以及尾插法进行解释. 首先定义好链表中的节点类: 其中,data代表节点所存放的数据,next代表指向下一节点 对于单 ...
- Wannafly挑战赛25游记
Wannafly挑战赛25游记 A - 因子 题目大意: 令\(x=n!(n\le10^{12})\),给定一大于\(1\)的正整数\(p(p\le10000)\)求一个\(k\)使得\(p^k|x\ ...
- Wannafly挑战赛27
Wannafly挑战赛27 我打的第一场$Wannafly$是第25场,$T2$竟然出了一个几何题?而且还把我好不容易升上绿的$Rating$又降回了蓝名...之后再不敢打$Wannafly$了. 由 ...
- Wannafly 挑战赛 19 参考题解
这一次的 Wannafly 挑战赛题目是我出的,除了第一题,剩余的题目好像对大部分算法竞赛者来说好像都不是特别友好,但是个人感觉题目质量还是过得去的,下面是题目链接以及题解. [题目链接] Wanna ...
随机推荐
- POJ 2240 Arbitrage(Floyed-Warshall算法)
题意:给出n种货币,m种兑换比率(一种货币兑换为另一种货币的比率),判断测试用例中套汇是否可行.(套汇的意思就是在经过一系列的货币兑换之后,是否可以获利.例如:货币i→货币j→货币i,这样兑换后,是否 ...
- 使用myeclipes制造属于自己的jar
选定你需要在jar中包含的package或者class 步骤1:右键export导出, 步骤2:导出类型为java --JRE file. 步骤3:直接finish即可完成 如果希望你的jar带源码 ...
- Struts2 - 配置文件中result 节点详解
每个 action 方法都将返回一个 String 类型的值, Struts 将根据这个值来决定响应什么结果. 每个 action 声明都必须包含有数量足够多的 result 元素, 每个 resul ...
- bzoj1014火星人
...强迫症终于A了这道题 bzoj前30道全A指日可待 splay维护这个结点控制的字符串的hash值 每次旋转重新算一遍就可以了 查询的时候跑一个二分 讲起来很简单但是还是调了1h才调对了spl ...
- bzoj 1833: [ZJOI2010]count 数位dp
题目: 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 题解 设\(f[i][j]\)表示长度为\(i\)的所有合法数字中有多少数码\(j\) 设\(g[i ...
- URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)
解决:鼠标悬于上方Alt + Enter 选择Ignore
- 移植memtester到android平台
硬件搭建起来能进入系统,首要就是测试内存的稳定性,需要一款内存测试工具. 一般都是选择memtester这款linux软件,下载地址如下:http://pyropus.ca/software/memt ...
- 调试 ASP 程序脚本
调试 ASP 脚本 无论您的计划多么精密.经验多么丰富,脚本错误 (bug) 可能在最初就使您的 ASP 服务器端的脚本无法正确运行.也就是说调试,即查找和纠正脚本错误,对开发一个成功的和强健的 AS ...
- 系列文章--Node.js学习笔记系列
Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学 ...
- Oracle 12c 多租户 CDB 与 PDB 级别 expdb 与 impdb(表、用户、全库)
Oracle 数据库 12 c 多租户下,如何在容器数据库 (CDB) 和可插拔数据库 (PDB) 中使用 expdb 与 impdp (数据泵) 呢? 我们一起探讨下PDB 下进行表级,用户级别,全 ...