拓扑排序&&欧拉(回)路
摘要:最近是不适合写代码么?忘记初始化wa到死<_=_=_>。唔--最近在学习图论,从基础搞起,先搞了拓扑排序和欧拉(回)路。
Part 0. 拓扑排序
==挖坑==
Part 1. 欧拉(回)路
先判连通性
欧拉回路:
- 有向图:每个顶点入度等于出度
- 无向图:每个顶点度数都为偶数
欧拉路:
- 有向图:每个顶点入度等于出度,或者,一个顶点入度比出度大一,一个顶点入度比出度小一(起点),其余顶点入度等于出度
- 无向图:每个顶点度数都为偶数,或者,只有两个顶点度数为奇数
HDU 3018 Ant Trip 注意hint
哇~我要贴错误代码啦~~说不定还能坑一下自己~_~
#include <iostream>
#include <stdio.h>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
#include <map>
using namespace std ;
#define rep(i,n) for (int i = 1 ; i <= n ; ++ i)
#define lson (i<<1)
#define rson (i<<1|1)
const int maxn = ;
vector<int> G[maxn] ;
int N , R , du[maxn] , cnt , fa[maxn] , num ;
bool vis[maxn] ; void dfs(int rt)
{
if (vis[rt]) return ;
num ++ ;
cnt += (du[rt]&) ;
vis[rt] = true ;
int v ;
for (int i = ; i < G[rt].size() ; ++ i) {
v = G[rt][i] ;
if (v != fa[rt]) {
fa[v] = rt ;
dfs(v) ;
}
}
} int main()
{
int u , v ;
while (scanf("%d%d",&N,&R) == ) {
memset(vis,false,sizeof(vis)) ;
memset(fa,-,sizeof(fa)) ;
rep(i,N) G[i].clear() ;
rep(i,R) {
scanf("%d%d",&u,&v) ;
du[u] ++ , du[v] ++ ;
G[u].push_back(v) ;
G[v].push_back(u) ;
}
int ans = ;
rep(i,N) {
if (!vis[i]) {
fa[i] = - ;
cnt = num = ;
dfs(i) ;
if (num == ) continue ;
if (cnt == ) ans ++ ;
else ans += (cnt/) ;
}
}
printf("%d\n",ans) ;
}
return ;
}
haha
路径什么的待补~~~~~
==end==
拓扑排序&&欧拉(回)路的更多相关文章
- CF36 E Two Paths——欧拉(回)路
题目:http://codeforces.com/contest/36/problem/E 给定一张无向图,要求输出两条欧拉路覆盖所有边: 分类讨论,首先判-1:有两个以上连通块 / 有四个以上奇度数 ...
- Instrction Arrangement UDH 4109 拓扑排序 or 最长路
题目描述 Ali has taken the Computer Organization and Architecture course this term. He learned that ther ...
- 2017 ACM-ICPC(乌鲁木齐赛区)网络赛 H.Skiing 拓扑排序+最长路
H.Skiing In this winter holiday, Bob has a plan for skiing at the mountain resort. This ski resort h ...
- BZOJ 1194 [HNOI2006]潘多拉的盒子 (图论+拓扑排序+tarjan)
题面:洛谷传送门 BZOJ传送门 标签里三个算法全都是提高组的,然而..这是一道神题 我们把这道题分为两个部分解决 1.找出所有咒语机两两之间的包含关系 2.求出咒语机的最长上升序列 我们假设咒语机$ ...
- [模板]tarjan缩点+拓扑排序
题目:给定一个n个点m条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大.你只需要求出这个权值和. 允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次. 题目简述:先t ...
- D2欧拉路,拓扑排序,和差分约束
第一题:太鼓达人:BZOJ3033 题意:给出k,求一个最长的M位01串,使其从每一个位置向后走k个得到 的M个k位01串互不相同(最后一个和第一个相邻,即是一个环).输出 字典序最小的答案. 2 ≤ ...
- 洛谷P3275 [SCOI2011]糖果(差分约束,最长路,Tarjan,拓扑排序)
洛谷题目传送门 差分约束模板题,等于双向连0边,小于等于单向连0边,小于单向连1边,我太蒻了,总喜欢正边权跑最长路...... 看遍了讨论版,我是真的不敢再入复杂度有点超级伪的SPFA的坑了 为了保证 ...
- 牛客网NOIP赛前集训营-提高组(第六场)-A-最长路[拓扑排序+hash+倍增]
题意 给定一个 \(n\) 点 \(m\) 边的边权非负的有向图,边有字符,求以每个点为开头的最长路字典序最小的路径 \(hash\) 值. \(n,m\leq 10^6\) 分析 首先建反图拓扑排序 ...
- 【BZOJ-1194】潘多拉的盒子 拓扑排序 + DP
1194: [HNOI2006]潘多拉的盒子 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 456 Solved: 215[Submit][Stat ...
随机推荐
- Android Studio安装和配置(个人研究,有错请指导)
安装Android Studio的原因:公司有app开发者,然而公司没有测试,只好互相测试,本人并没有接触过app开发,纯小白: 自己试着安装了一下Android Studio来这里记录并分享遇到的问 ...
- 有关sublime text的插件安装
.sumblime text 中的package control 插件包控件的安装步骤一: Ctrl+` 调出console 粘贴代码: import urllib2,os; pf='Pa ...
- Linux下怎么删除非空目录
rm -rf 目录名 解释: 1.r意思是删除目录,f意思是force的缩写,强制删除,不提示. 2.如果目录为空,可以用 "rmdir 目录名"删除. 3.如果目录不为空,可以用 ...
- org.springframework.jdbc.UncategorizedSQLException异常
用到了mysql的TRUNCATE函数,这个关键字对spring事务有影响,最后换成了ROUND函数
- KMP算法解析(转自图灵社区)
KMP算法是一个很精妙的字符串算法,个人认为这个算法十分符合编程美学:十分简洁,而又极难理解.笔者算法学的很烂,所以接触到这个算法的时候也是一头雾水,去网上看各种帖子,发现写着各种KMP算法详解的转载 ...
- 【转】【翻译】对响应式SVG的再思考
来源: http://www.w3ctech.com/topic/1555 原文地址:http://www.smashingmagazine.com/2014/03/rethinking-respon ...
- MySQL 5.6查询优化器新特性的“BUG” eq_range_index_dive_limit
本文转自 http://www.imysql.cn 最近碰到一个慢SQL问题,解决过程有点小曲折,和大家分享下. SQL本身不复杂,表结构.索引也比较简单,不过个别字段存在于多个索引中. CREATE ...
- 安装CAD2006装好了为什么不能用,显示系统错误无法启动此程序,因计算机丢失aclst.dll。尝试重新安装该程序以解
我的电脑,右键 属性——>高级选项卡(win7的是高级系统设置)——>环境变量——>系统变量——>然后新建系统变量 变量名为:AutoCAD 变量值为:c:\program f ...
- 利用yii2 gridview实现批量删除案例[转]
今天仍然继续探讨GridView的问题,昨天有个小伙伴留言说你用gridview给我去掉表头的链接?我想啊想,这用gridview确实不容易实现,至少我没想出来,会的下方可留言.但是呢,这根gridv ...
- SQL语句导致cpu占用如此高
一般我们可以使用sql server自带的性能分析追踪工具sql profiler分析数据库设计所产生问题的来源,进行有针对性的处理.但我们也可以通过自己写SQL语句来有针对性的进行性能方面的查询.通 ...