HDU 5348 MZL's endless loop
乱搞题...第一直觉是混合图的欧拉通路,但是感觉并没有多大关系。最终AC的做法是不断的寻找欧拉通路,然后给边标号。所有边访问了一遍,所有点访问了一遍,效率是o(n+m)。不存在-1的情况。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std; const int maxn=;
int n,m;
struct Edge
{
int from,to;
int ans;
int flag;
} edge[*maxn+];
vector<int> G[maxn+];
int tot[maxn+];
int Ru[maxn+];
int Ch[maxn+];
int St[maxn+]; void dfs(int now,int x)
{
for(int i=St[now]; i<G[now].size(); i++)
{
Edge &e=edge[G[now][i]];
if(!e.flag)//这条边没走过
{
St[now]=i+;
if(x==)
{
if(e.from==now)
{
e.ans=;
e.flag=;
tot[e.from]--;
tot[e.to]--;
Ch[e.from]++;
Ru[e.to]++;
dfs(e.to,x);
return; }
else if(e.to==now)
{
e.ans=;
e.flag=;
tot[e.from]--;
tot[e.to]--;
Ch[e.to]++;
Ru[e.from]++;
dfs(e.from,x);
return;
}
}
else if(x==)
{
if(e.to==now)
{
e.ans=;
e.flag=;
tot[e.from]--;
tot[e.to]--;
Ru[e.to]++;
Ch[e.from]++;
dfs(e.from,x);
return;
}
else if(e.from==now)
{
e.ans=;
e.flag=;
tot[e.from]--;
tot[e.to]--;
Ru[e.from]++;
Ch[e.to]++;
dfs(e.to,x);
return;
}
}
}
}
}
int main()
{
int T;
scanf("%d",&T);
for(int y=; y<=T; y++)
{
scanf("%d%d",&n,&m);
for(int i=; i<=n; i++) G[i].clear();
memset(tot,,sizeof(tot));
memset(Ru,,sizeof(Ru));
memset(Ch,,sizeof(Ch));
memset(St,,sizeof(St));
for(int i=; i<=m; i++)
{
scanf("%d%d",&edge[i].from,&edge[i].to);
if(edge[i].from==edge[i].to)
{
edge[i].ans=;
continue;
}
edge[i].flag=;
G[edge[i].from].push_back(i);
G[edge[i].to].push_back(i);
tot[edge[i].from]++;
tot[edge[i].to]++;
}
for(int i=; i<=n; i++)
{
while(tot[i])
{
if(Ru[i]>=Ch[i]) dfs(i,);
else dfs(i,);
}
}
for(int i=; i<=m; i++)
printf("%d\n",edge[i].ans);
}
return ;
}
HDU 5348 MZL's endless loop的更多相关文章
- Hdu 5348 MZL's endless loop (dfs)
题目链接: Hdu 5348 MZL's endless loop 题目描述: 给出一个无向图(有环,有重边),包含n个顶点,m条边,问能否给m条边指定方向,使每个顶点都满足abs(出度-入度)< ...
- 2015 Multi-University Training Contest 5 hdu 5348 MZL's endless loop
MZL's endless loop Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Oth ...
- HDU 5348 MZL's endless loop(DFS去奇数度点+欧拉回路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5348 题目大意:给你一张图,有n个点,和m条无向边,让你把m条无向边变成有向边,使得每个节点的|出度- ...
- HDU 5348 MZL's endless loop 给边定向(欧拉回路,最大流)
题意: 给一个所有你可能想得到的奇葩无向图,要求给每条边定向,使得每个点的入度与出度之差不超过1.输出1表示定向往右,输出0表示定向往左. 思路: 网络流也是可以解决的!!应该挺简单理解的.但是由于复 ...
- 图论 HDOJ 5348 MZL's endless loop
题目传送门 /* 题意:给一个n个点,m条边的无向图,要求给m条边定方向,使得每个定点的出入度之差的绝对值小于等于1. 输出任意一种结果 图论:一个图,必定存在偶数个奇度顶点.那么从一个奇度定点深搜, ...
- 2015多校.MZL's endless loop(欧拉回路的机智应用 || 构造)
MZL's endless loop Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Oth ...
- hdu5348 MZL's endless loop(欧拉回路)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud MZL's endless loop Time Limit: 3000/1500 ...
- hdu 5348 MZL's endless loop
给一个无向图(事实上是有向的.可是没有指定边的方向),你须要指定边的方向,使得每一个点入度和出度相差不超过1. 事实上就是找很多条路径.合起来能走完这个图..先统计各个顶点的度.度为奇数必是起点或终点 ...
- [2015hdu多校联赛补题]hdu5348 MZL's endless loop
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5348 题意:给你一个无向图,要你将无向图的边变成有向边,使得得到的图,出度和入度差的绝对值小于等于1, ...
随机推荐
- Spring Boot--war发布
启动main类继承SpringBootServletInitializer,并重写"protected SpringApplicationBuilder configure(SpringAp ...
- Java与JavaScript中判断两字符串是否相等的区别
JavaScript是一种常用的脚本语言,这也决定了其相对于其他编程语言显得并不是很规范.在JavaScript中判断两字符串是否相等 直接用==,这与C++里的String类一样.而Java里的等号 ...
- mysql批量插入之提高插入效率
INSERT INTO insert_table (datetime, uid, content, type) VALUES ('0', 'userid_0', 'content_0', 0); IN ...
- Oracle数据库创建数据库实例1
http://jingyan.baidu.com/article/ae97a646d128d5bbfd461d00.html
- 【实验室笔记】serialport的readline()方法
在最近的小项目中,单片机中断优先级的问题,串口发送到上位机的数据有时会出现发送的数据被中断打断的问题. 于是,在上位机机上就容易出现错误,原来读取的方法是read()的方法,反复修改发送数据的格式依然 ...
- photoshop切图
1.首先需要用photoshop把psd源文件打开,看看源文件的整体布局.源文件是分层的,方便切图的层次. 2.切图的工具叫做"切片",在左侧面板可以看到.右击可以看到" ...
- LINUX利用Speedtest测速
那么远程服务器呢?要知道大多数远程服务器是没有浏览器可以打开web页面的.用浏览器打开网页测速的瓶颈就在此,你不能按计划的对服务器进行定期的常规测试.这时需要到一个名为Speedtest-cli的软件 ...
- python 学习 [day6]
递归阶乘: 函数自己调用自己循环操作的模式称之为递归 def func(num): if num == 1: return 1 return num * func(num - 1) print(fun ...
- SEO定义目的,优化的好处
SEO:search engine optimization(搜索引擎优化) SEO严谨的定义:SEO是指在了解搜索引擎自然排名机制的基础上,对网站进行内部及外部的调整优化,改进网站在搜索引擎中关键字 ...
- maven添加本地依赖包方法
1.某些情况下不方便上传本地依赖包到Maven repository,可以通过下面方法添加本地依赖包. 2.方法 1).pom.xml中添加以下代码块 <dependency> <g ...