Description

邮局需要你来帮助他们为某个邮递员设计出一条能够穿过那遥远乡村的所有村子和小路至少一次的邮路(输入数据将会保证这么一条路是一定存在的)。
  但是,每条路线都是有一个花费的。各个村子里的村民希望邮递员到达他们村子的时间越早越好。因此,各个村子里的人们采用了一些措施:假设第i号村子是邮递员在他的邮递路线上到达的第k个不同的村子。如果k<=w( i ),那么这个村子的村民就会付给邮局w( i )-k欧元。当然,如果k>w(i),邮局也同意付k- w( i )欧元给这个村子,重复经过村子不重复收费。此外,邮递员每经过一条小路,邮局也要付给邮递员1欧元作为补贴。
  现在有n个村子,编号依次为1到n。邮局就位于1号村子,因此邮递员的传递路线从这里开始,也从这个村子结束。能够离开每个村子的路口的数目一定是2,4或者8。这里允许出现同样的村子间存在多条小路,或者某条小路构成了一个自环的情况。
  你的任务是设计一个路线使得邮局赚的钱最多(或者说赔的钱最少。如果有多种最优解,输出字典序最小的。

Input

第一行:两个整数n,m,分别表示村子的数量和小路的数量。
  接下来n行,每行一个整数:w(i)(1≤w(i)<1 000)
  接下来m行,每行两个整数u,v,表示这条小路连接的村子的编号。

Output

第一行:一个整数k,你的程序所设计的路径的长度
  第二行:k+1个整数,v1,v2…vk+l,每个数之间用一个空格隔开,表示你设计的路径所经过的村子的编号,其中需要满足v1=vk+1=1

Sample Input

6 7
1
7
4
10
20
5
2 4
1 5
2 1
4 5
3 6
1 6
1 3

Sample Output

7
1 2 4 5 1 3 6 1

Hint

【样例说明】

【数据说明】
  对于30%的数据,有N<=20
  对于100%的数据,有N<=200;

题解

  • 其实就是欧拉回路,与v没有关系

代码

 1 #include <cstdio>
 2 #include <iostream>
 3 #define N 210
 4 using namespace std;
 5 int n,m,cnt,w[N],f[N][N],ans[N];
 6 void dfs(int x)
 7 {
 8     for (int i=1;i<=n;i++) if (f[x][i]) f[x][i]--,f[i][x]--,dfs(i);
 9     ans[++cnt]=x;
10 }
11 int main()
12 {
13     scanf("%d%d",&n,&m);
14     for (int i=1;i<=n;i++) scanf("%d",&w[i]);
15     for (int i=1,x,y;i<=m;i++) scanf("%d%d",&x,&y),f[x][y]++,f[y][x]++;
16     dfs(1),printf("%d\n",cnt-1);
17     for (int i=cnt;i>=1;i--) printf("%d ",ans[i]);
18 }

转载于:https://www.cnblogs.com/Comfortable/p/10473074.html

[欧拉回路] Jzoj P1319 邮递员相关推荐

  1. JZOJ 1319. 邮递员

    Description 邮局需要你来帮助他们为某个邮递员设计出一条能够穿过那遥远乡村的所有村子和小路至少一次的邮路(输入数据将会保证这么一条路是一定存在的). 但是,每条路线都是有一个花费的.各个村子 ...

  2. JZOJ 1319 邮递员

    题目大意: 说了半天没有用的东西,其实就是让你求字典序最小的欧拉回路. 题解: 我们把每个点所相连的点排个序,按往常求欧拉回路那样做就行了. Code: #include<cstdio> ...

  3. 【图论】中国邮递员问题、平面图上最大割问题的多项式时间算法

    文章目录 一.中国邮递员问题 1. 与欧拉回路的关系 2. Edmonds-Johnson算法 3. 一个例子 二.平面图上的最大割问题 1. 割 2. 最大割及其 N P \bold{NP} NP完 ...

  4. 《离散数学》:特殊的图

    〇.前言 这一节会重点讨论一下一些特殊的图,这些图会解决一些特殊的问题. 一.欧拉图 给定无向连通图 G,若存在一条路经过 G 中每边一次且仅一次,则该路为欧拉路.若存在一条回路经过 G 中每边一次且 ...

  5. 【jzoj 3290】【luogu P6085】Foodie / 吃货 JYY(数位DP)(欧拉回路)

    Foodie / 吃货 JYY 题目链接:jzoj 3290 / luogu P6085 题目大意 有 n 个点,有一些路径一定要走,有一些路径可以走可以不走,都有走的费用. 路径双向,然后问你从 1 ...

  6. 【省选专题一】图论 jzoj 3290【JSOI2013】吃货JYY 状压dp+欧拉回路

    Description 世界上一共有N个JYY愿意去的城市,分别从1编号到N.JYY选出了K个他一定要乘坐的航班.除此之外,还有M个JYY没有特别的偏好,可以乘坐也可以不乘坐的航班. 一个航班我们用一 ...

  7. [jzoj 3383] 【NOIP2013模拟】太鼓达人 {欧拉回路+暴力}

    题目 Description 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk.Poet_shy ...

  8. 【JZOJ 1319】 邮递员

    Description 无向图中,求一个字典序最小的欧拉回路 Analysis 不考虑字典序,欧拉回路如何求? 大致思想: 1.找到一条回路 2.由于是dfs,走的顺序刚好与退栈的顺序相反 3.在退栈 ...

  9. [欧拉回路][状压dp] Jzoj P3290 吃货JYY

    Description 世界上一共有N个JYY愿意去的城市,分别从1编号到N.JYY选出了K个他一定要乘坐的航班.除此之外,还有M个JYY没有特别的偏好,可以乘坐也可以不乘坐的航班. 一个航班我们用一 ...

最新文章

  1. springboot使用原生servlet、filter、listener
  2. redmine2.4.2 插件安装
  3. 如何保证对象的唯一性
  4. Auto login to your computer
  5. 极大似然估计求解多项式分布参数
  6. .NET不死,为什么企业招聘都要java?
  7. oracle ebs教学视频教程,Oracle EBS教学视频
  8. 运营商精准大数据——主动出击 精准获客_客户_实时数据
  9. java连缀怎样写_【20200625】连缀例话:-写文章的7项好处
  10. CC00154.bigdatajava——|JavaMySQL.高级.V26|——|MySQL.v27|锁机制_锁概念介绍|
  11. python_MOD13A3_NDVI 最大合成
  12. php文字链接下划线怎么取消,html超链接怎么去掉下划线
  13. python3视频教程推荐_《Python3从入门到放弃》视频教程
  14. YOLOV5模型训练之JSON格式的数据集制作,一个py程序搞,搞不定邮件联系,我帮你!!!!
  15. 计算机科技英语文章及翻译,计算机专业英语短文翻译.doc
  16. 「文化」是企业最后的倔强
  17. 无线网卡性能怎么测试软件,Mercury MW150U 无线网卡性能测试
  18. 一步步带你做vue后台管理框架(二)——上手使用 系列教程《一步步带你做vue后台管理框架》第二课
  19. 使用Burp Suite对登录页面进行字典攻击
  20. U8材料出库单的月出库量

热门文章

  1. 分享回顾 | 基于深度学习的神经语义搜索
  2. latex: Change ieetran.bst bibliography style lastname before firstname
  3. html怎么做跳动的心,css动画之如何写个跳动的心送妹子
  4. 网页显示和源代码显示不一致
  5. 从网线到IO模型(网络基础整合)
  6. 前端叹了口气,并表示谣言止于智者
  7. 活动报名 |HPE慧与(原惠普)12月10日Devops公开课--敏捷之旅2017 北京站:Devops 专场
  8. 极星汽车纳斯达克上市:募资超8亿美元 李书福再收获IPO
  9. linux系统适合什么游戏,Linux 系统不适合运行主流游戏?这是为何
  10. 微软在线技术峰会传递出怎样的信号?