每个城市有4个城门,每个城门会发出唯一一条边去别的城市的城门。问你能否从城市1出发,经过每个城门恰好一次,再回到城市1。

每个城市的度数都是4,必然存在欧拉回路(如果连通)。欧拉回路显然是一个合法解。

#include<cstdio>
#include<vector>
using namespace std;
struct Edge{
int id,v;
};
vector<Edge>G[1010];
int n,sz,path[2010];
bool vis[2010],a[4010][4010];
void dfs(int U){
while(!G[U].empty()){
Edge e=G[U].back();
G[U].pop_back();
if(!vis[e.id]){
vis[e.id]=1;
dfs(e.v);
}
}
path[++sz]=U;
}
int du[1010],anss[4010],ans;
int main(){
freopen("courier.in","r",stdin);
freopen("courier.out","w",stdout);
int x,y;
scanf("%d",&n);
for(int i=1;i<=(n<<1);++i){
scanf("%d%d",&x,&y);
G[(x-1)/4+1].push_back((Edge){i,(y-1)/4+1});
G[(y-1)/4+1].push_back((Edge){i,(x-1)/4+1});
a[x][y]=a[y][x]=1;
++du[(x-1)/4+1];
++du[(y-1)/4+1];
}
dfs(1);
if(sz!=2*n+1){
puts("No");
return 0;
}
for(int i=1;i<sz;++i){
for(int j=4*path[i];j>=4*path[i]-3;--j){
for(int k=4*path[i+1];k>=4*path[i+1]-3;--k){
if(a[j][k]){
anss[++ans]=j;
anss[++ans]=k;
a[j][k]=a[k][j]=0;
goto OUT;
}
}
}
puts("No");
return 0;
OUT:;
}
puts("Yes");
for(int i=1;i<ans;++i){
printf("%d ",anss[i]);
}
printf("%d\n",anss[ans]);
return 0;
}

【欧拉回路】Gym - 101411C - Courier's Route的更多相关文章

  1. 2009-2010 ACM-ICPC, NEERC, Western Subregional Contest

    2009-2010 ACM-ICPC, NEERC, Western Subregional Contest 排名 A B C D E F G H I J K L X 1 0 1 1 1 0 1 X ...

  2. Kibana源码剖析 —— savedSearch从读取到跳转

    持久化对象 Kibana中可以查询到很多保存的对象,他们都存储在es中一个叫做.kibana的索引中. 搜索 存储在type为search中; 图表 存储在type为visualization中: 仪 ...

  3. Codeforces Gym 100431A Achromatic Number 欧拉回路

    原题链接:http://codeforces.com/gym/100431/attachments/download/2421/20092010-winter-petrozavodsk-camp-an ...

  4. Gym 100851K

    Problem King's Inspection 题目大意 给一张n个点m条边的无向图,问是否存在一条欧拉回路. n<=10^5, 0<=m<=n+20. 解题分析 注意到数据范围 ...

  5. 欧拉回路-Door Man 分类: 图论 POJ 2015-08-06 10:07 4人阅读 评论(0) 收藏

    Door Man Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 2476 Accepted: 1001 Description ...

  6. URAL 1137 Bus Routes(欧拉回路路径)

    1137. Bus Routes Time limit: 1.0 secondMemory limit: 64 MB Several bus routes were in the city of Fi ...

  7. poj 1300 Door Man 欧拉回路

    题目链接:http://poj.org/problem?id=1300 You are a butler in a large mansion. This mansion has so many ro ...

  8. Gym 100531H Problem H. Hiking in the Hills 二分

    Problem H. Hiking in the Hills 题目连接: http://codeforces.com/gym/100531/attachments Description Helen ...

  9. 【转】欧拉回路&特殊图下的哈密顿回路题集

    转自:http://blog.csdn.net/shahdza/article/details/7779385 欧拉回路[HDU]1878 欧拉回路 判断3018 Ant Trip 一笔画问题1116 ...

随机推荐

  1. 打开Android系统安装APK的页面

    //使用隐式意图开启安装APK的Activity Intent intent = new Intent("android.intent.action.VIEW"); intent. ...

  2. git 配置多用户

    .ssh 下的 config.txt 内容 # 配置github.com Host github.com HostName github.com IdentityFile ~/.ssh/id_rsa_ ...

  3. JSOI2018简要题解

    来自FallDream的博客,未经允许,请勿转载,谢谢. 有幸拜读到贵省的题目,题的质量还不错,而且相比zjoi可做多了,简单发一下题解吧. 还有就是,怎么markdown在博客园上的代码这么丑啊 「 ...

  4. go语言爬虫goquery和grequests的使用

    /*下载工具*/ package main import ( "fmt" //go语言版本的jquery "github.com/PuerkitoBio/goquery& ...

  5. Django 国内最全教程

    https://code.ziqiangxuetang.com/django/django-tutorial.html

  6. saltstack安装和配置

    [root@web9 salt]# vi filetest.sls //ADD file_test: file.managed: - name: /tmp/lulu.com - source: sal ...

  7. Django web框架之权限管理一

    1. 需求分析: 准备:创建独立app, rbac #权限管理模块/组件 app01 #应用 分配权限,URL 2. 数据库设计 2.1 设计思路 第一版: 权限表: ID url title is_ ...

  8. hdu 3395(KM算法||最小费用最大流(第二种超级巧妙))

    Special Fish Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  9. hdu 3667(最小费用最大流+拆边)

    Transportation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  10. 主机批量扫描工具fping,hping安装及使用

    https://blog.csdn.net/weixin_39762926/article/details/79476196?utm_source=blogxgwz0 https://blog.csd ...