日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/3/21 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu5348 MZL's endless loop(欧拉回路) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載請注明出處:?http://www.cnblogs.com/fraud/?????????? ——by fraud

?

MZL's endless loop

Time Limit: 3000/1500 MS (Java/Others)????Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 1705????Accepted Submission(s): 369
Special Judge


Problem Description As we all kown, MZL hates the endless loop deeply, and he commands you to solve this problem to end the loop.
You are given an undirected graph with?n?vertexs and?m?edges. Please direct all the edges so that for every vertex in the graph the inequation?|out?degree???in?degree|1?is satisified.
The graph you are given maybe contains self loops or multiple edges.


Input The first line of the input is a single integer?T, indicating the number of testcases.
For each test case, the first line contains two integers?n?and?m.
And the next?m?lines, each line contains two integers?ui?and?vi, which describe an edge of the graph.
T100,?1n105,?1m3?105,?n2?105,?m7?105.


Output For each test case, if there is no solution, print a single line with??1, otherwise output?m?lines,.
In?ith line contains a integer?1?or?0,?1?for direct the?ith edge to?uivi,?0?for?uivi.


Sample Input 2 3 3 1 2 2 3 3 1 7 6 1 2 1 3 1 4 1 5 1 6 1 7


Sample Output 1 1 1 0 1 0 1 0 1

題意就是給你一張無向圖,讓你把它變成有向圖,使得對于每一個頂點都滿足出度與入度的差的絕對值小于等于一

利用歐拉回路,在歐拉圖中,每個點的出度都等于入度,那么對于這個圖,其實就相當于若干個歐拉圖,然后去掉一些邊。

然后我們需要做的就是補邊。也就是對于每個奇度點,加一條連到其它奇度點的無向邊,然后跑歐拉回路,跑的方向就是這條邊的方向。

另外注意有多個連通分支。這題比較容易T,雖然我的隊友在比賽時瞬間就AC了。。。然而我還是在賽后T了好久,畢竟隊友是final選手

1 /** 2 * code generated by JHelper 3 * More info: https://github.com/AlexeyDmitriev/JHelper 4 * @author xyiyy @https://github.com/xyiyy 5 */ 6 7 #include <iostream> 8 #include <fstream> 9 10 //##################### 11 //Author:fraud 12 //Blog: http://www.cnblogs.com/fraud/ 13 //##################### 14 #pragma comment(linker, "/STACK:102400000,102400000") 15 #include <iostream> 16 #include <sstream> 17 #include <ios> 18 #include <iomanip> 19 #include <functional> 20 #include <algorithm> 21 #include <vector> 22 #include <string> 23 #include <list> 24 #include <queue> 25 #include <deque> 26 #include <stack> 27 #include <set> 28 #include <map> 29 #include <cstdio> 30 #include <cstdlib> 31 #include <cmath> 32 #include <cstring> 33 #include <climits> 34 #include <cctype> 35 36 using namespace std; 37 #define rep(X, N) for(int X=0;X<N;X++) 38 39 const int MAXN = 800010; 40 int head[MAXN]; 41 int Next[MAXN], To[MAXN]; 42 int vis[MAXN]; 43 int used[100010]; 44 int deg[100010]; 45 int gao; 46 int tot; 47 48 void init(int n) { 49 tot = 0; 50 rep(i, n)head[i] = -1; 51 } 52 53 void addedge(int u, int v) { 54 Next[tot] = head[u]; 55 To[tot] = v; 56 vis[tot] = 0; 57 head[u] = tot++; 58 } 59 60 void eular(int u){ 61 used[u] = 1; 62 int i; 63 while(head[u]!=-1){ 64 //for(int &i = head[u];i != -1;i = Next[i]){ 65 i = head[u]; 66 head[u] = Next[head[u]]; 67 if(vis[i])continue; 68 vis[i^1] = 1; 69 eular(To[i]); 70 } 71 } 72 int Scan() { 73 int res=0, ch; 74 while(ch=getchar(), ch<'0'||ch>'9'); 75 res=ch-'0'; 76 while((ch=getchar())>='0'&&ch<='9') 77 res=res*10+ch-'0'; 78 return res; 79 } 80 void Out(int a) { 81 if (a > 9) 82 Out(a / 10); 83 putchar(a % 10 + '0'); 84 } 85 86 class hdu5348 { 87 public: 88 void solve() { 89 int t; 90 t =Scan();//in >> t; 91 while (t--) { 92 int n, m; 93 n = Scan();m=Scan();//in >> n >> m; 94 init(n); 95 rep(i, n)deg[i] = 0; 96 int u, v; 97 rep(i, m) { 98 u = Scan();v= Scan();//in >> u >> v; 99 u--, v--; 100 deg[u]++; 101 deg[v]++; 102 addedge(u, v); 103 addedge(v, u); 104 } 105 gao = -1; 106 rep(i, n) { 107 if (deg[i] & 1) { 108 if (gao != -1) { 109 addedge(i, gao); 110 addedge(gao, i); 111 gao = -1; 112 } else gao = i; 113 } 114 } 115 rep(i, n) used[i] = 0; 116 /*rep(i,n){ 117 if(!used[i]){ 118 dfs(i); 119 num++; 120 } 121 }*/ 122 gao = -1; 123 rep(i, n) { 124 if (!used[i]) { 125 eular(i); 126 } 127 } 128 m<<=1; 129 for(int i=1;i<m;i+=2){ 130 if (vis[i])putchar('1'); 131 else putchar('0'); 132 putchar('\n'); 133 } 134 135 } 136 } 137 }; 138 139 140 int main() { 141 //std::ios::sync_with_stdio(false); 142 //std::cin.tie(0); 143 hdu5348 solver; 144 //std::istream &in(std::cin); 145 //std::ostream &out(std::cout); 146 solver.solve(); 147 return 0; 148 }

?

轉載于:https://www.cnblogs.com/fraud/p/4705833.html

總結

以上是生活随笔為你收集整理的hdu5348 MZL's endless loop(欧拉回路)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久亚洲AV成人无码国产人妖 | 国产又粗又猛又爽又黄的视频一 | 蜜臀一区二区三区 | www.在线视频 | 美女av网址 | 国产盗摄视频在线观看 | 美女在线网站 | 日韩五码电影 | 亚洲人在线 | 色男人的天堂 | 先锋影音亚洲 | 男人影院在线观看 | 国产精品熟妇人妻g奶一区 a少妇 | 少妇人妻互换不带套 | 少妇性l交大片免费观看 | 悠悠色综合 | 国产精品夜夜嗨 | 六月婷婷综合网 | 日韩精品一区二区在线看 | 激情丁香网 | 国产精品国产三级国产aⅴ9色 | 欧美顶级metart裸体全部自慰 | 在线国产精品一区 | 日日射影院| 黄色在线观看av | 能看的av网站 | 蜜桃视频黄色 | 久久久久国产精品午夜一区 | 国产欧美视频一区 | 一区二区三区爱爱 | 欧美一区亚洲二区 | 告诉我真相俄剧在线观看 | 黄色特级一级片 | 欧美大片高清免费观看 | 欧美三日本三级少妇99 | 在线视频观看国产 | 91禁蘑菇在线看 | 99国产精品人妻噜啊噜 | 男人操女人的视频 | 我爱av好色| 日日夜夜免费 | 麻豆高清免费国产一区 | 妞干网这里只有精品 | 国产成人三级在线观看视频 | 韩国av一区二区三区 | 一女三黑人理论片在线 | 亚洲精品小视频 | 91免费高清 | 精品人妻伦一二三区久久 | 欧美丰满少妇 | 久久免费播放视频 | 69热在线 | 国产亚洲一区二区三区在线观看 | 91丨porny丨在线中文 | 草逼视频免费看 | 手机av免费观看 | 日韩免费在线视频 | 国产美女精品视频 | 日韩av一二三区 | 成人精品区 | www视频在线 | av动态| 欧洲在线一区 | 美日韩精品一区二区 | 九九爱爱视频 | 日日爽爽 | 亚洲三级网站 | 精品国产一区二区三 | 级毛片内射视频 | 国产香蕉尹人视频在线 | 亚洲色图一区二区 | sm捆绑调教视频 | 性色欲情网站iwww九文堂 | 偷拍女澡堂一区二区三区 | 国产精品国产三级国产aⅴ原创 | 色婷婷香蕉在线一区二区 | 国产欧美三区 | 国产一区二区视频在线观看免费 | 台湾黄色网址 | 天天看夜夜看 | 国产香蕉网 | 91免费版在线 | 欧美aaaaaa | 90岁老太婆乱淫 | 91涩漫成人官网入口 | 妖精视频一区二区 | 免费在线看黄网站 | 成人自拍网站 | 亚洲三区在线观看无套内射 | 成人免费一级视频 | 少妇人妻一区二区 | 精品人妻一区二区三区麻豆91 | 丰满护士巨好爽好大乳 | bt男人天堂 | 校园春色av | 精品免费视频 | 对白刺激国产子与伦 | 国产二区电影 | 51国产在线 |