乱搞题...第一直觉是混合图的欧拉通路,但是感觉并没有多大关系。最终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的更多相关文章

  1. Hdu 5348 MZL's endless loop (dfs)

    题目链接: Hdu 5348 MZL's endless loop 题目描述: 给出一个无向图(有环,有重边),包含n个顶点,m条边,问能否给m条边指定方向,使每个顶点都满足abs(出度-入度)< ...

  2. 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 ...

  3. HDU 5348 MZL's endless loop(DFS去奇数度点+欧拉回路)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5348 题目大意:给你一张图,有n个点,和m条无向边,让你把m条无向边变成有向边,使得每个节点的|出度- ...

  4. HDU 5348 MZL's endless loop 给边定向(欧拉回路,最大流)

    题意: 给一个所有你可能想得到的奇葩无向图,要求给每条边定向,使得每个点的入度与出度之差不超过1.输出1表示定向往右,输出0表示定向往左. 思路: 网络流也是可以解决的!!应该挺简单理解的.但是由于复 ...

  5. 图论 HDOJ 5348 MZL's endless loop

    题目传送门 /* 题意:给一个n个点,m条边的无向图,要求给m条边定方向,使得每个定点的出入度之差的绝对值小于等于1. 输出任意一种结果 图论:一个图,必定存在偶数个奇度顶点.那么从一个奇度定点深搜, ...

  6. 2015多校.MZL's endless loop(欧拉回路的机智应用 || 构造)

    MZL's endless loop Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Oth ...

  7. hdu5348 MZL's endless loop(欧拉回路)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud MZL's endless loop Time Limit: 3000/1500 ...

  8. hdu 5348 MZL&#39;s endless loop

    给一个无向图(事实上是有向的.可是没有指定边的方向),你须要指定边的方向,使得每一个点入度和出度相差不超过1. 事实上就是找很多条路径.合起来能走完这个图..先统计各个顶点的度.度为奇数必是起点或终点 ...

  9. [2015hdu多校联赛补题]hdu5348 MZL's endless loop

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5348 题意:给你一个无向图,要你将无向图的边变成有向边,使得得到的图,出度和入度差的绝对值小于等于1, ...

随机推荐

  1. Java List&Map简单初始化方法

    Java中List与Map初始化的一些写法 // InitCollections.java - sample of init collect package com.util; import java ...

  2. HDU 4262 Juggler

    点我看题 初步想法是模拟,找到下一个位置并记录操作数,O(n^2)肯定会超时. 那么进行优化,会发现到下一位置的操作数就是两个位置之间存在的数的个数,于是就变成了计数问题. 不难想到用树状数组或线段树 ...

  3. tftp服务器最简单安装配置

    注:转载他人 这是在debian下面操作的1.安装tftp-server sudo apt-get install tftpd-hpa sudo apt-get install tftp-hpa(如果 ...

  4. js中三目运算符和&& || 符的个人浅见

    这两天看到别人写的代码,感觉很牛逼,如下,大神请忽视 $(".lgn").on("click", function() { var a = {}; a.logi ...

  5. B/S、C/S区别

    [B/S.C/S C/S (Client/Server客户端服务器) B/S (Brower/Server浏览器服务器)  区别 1.硬件环境不同: C/S 一般建立在专用的网络上, 小范围里的网络环 ...

  6. Adding DOM elements to document

    1.JavaScript 添加DOM Element 执行效率比较: 抄自:http://wildbit.com/blog/2006/11/21/javascript-optimization-add ...

  7. HDU - 2290 Find the Path(最短路)

    HDU - 2290 Find the Path Time Limit: 5000MS   Memory Limit: 64768KB   64bit IO Format: %I64d & % ...

  8. magento数据查询

    一.查询出所有的数据: 1.以mysql查询语句在magento里执行,以此来查询你所需要的语句! $read = Mage::getSingleton('core/resource')->ge ...

  9. 《JS权威指南学习总结--8.7 函数属性、方法和构造函数》

    内容要点:   在JS程序中,函数是值.对函数执行typeof运算会返回字符串 "function",但是函数是JS中特殊的对象.因为函数也是对象,它们也可以拥有属性和方法,就像普 ...

  10. JavaScript的内置对象(Date日期+string字符串)基础语法总结

    1.Date日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 1)定义一个时间对象 : var Udate=new Date(); //注意:使用关键字new,Date()的首 ...