拓扑排序&&欧拉(回)路
摘要:最近是不适合写代码么?忘记初始化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 ...
随机推荐
- 阿里im即时通讯 h5 demo
适合不想装后台环境的同学,用nodejs搭建服务器. 以下是官网提供的node 请求示例: 找到了一个ali-top-sdk 代替topClient 于是请求示例代码如下: TopClient = r ...
- Leetcode--Generate Parentheses
主要考察栈的理解 static vector<string> generateParenthesis(int n) { vector<string> res; addingpa ...
- 20169212《Linux内核原理与分析》第五周作业
关于linux内核源码 两个很关键的目录,一个是arch(architecture),支持不同cpu体系架构的源代码,其中最重要的就是x86(一般把x86留下,其他的目录删掉),另一个是init(其中 ...
- 纯JS 将table表格导出到excel
html <div > <button type="button" onclick="getXlsFromTbl('tableExcel','myDiv ...
- PHP实现文件上传
一.关于全局变量$_FILES $_FILES包含有所有上传的文件信息.假设文件上传字段的名称为 img.则 $_FILES['img']['name']:客户端上传的文件的原名称. $_FILES[ ...
- ios基础篇(二十八)—— UITableView的上拉加载
本文主要展示一个demo实现UITableView的上拉加载数据: 先看看效果图: 接着上拉,加载更多数据: 主要实现的效果是在我们上拉结束拖拽之后,开始加载数据,数据加载的过程中有滚动轮提示用户正在 ...
- [IOS 开发] 自定义(重写) UITableViewCell的高亮背景色
IOS的sdk中,对UITableViewCell的高亮背景色只支持两种颜色,分别为UITableViewCellSelectionStyleBlue和UITableViewCellSelection ...
- css属性的书写
书写顺序: 注释方式: /* 块状注释文字 * 块状注释文字 * 块状注释文字 */ .m-list{width:500px;} .m-list li{height:20px;line-height: ...
- jquery 实现 返回顶部
//Html代码: <div class="backToTop" title="返回顶部">返回顶部</div> //代码 //CS ...
- checkbox
$(document).ready(function(){ var page_id = {/$page_id/}; var location_id = {/$location_id/}; var lo ...