博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[欧拉回路] Jzoj P1319 邮递员
阅读量:5076 次
发布时间:2019-06-12

本文共 1388 字,大约阅读时间需要 4 分钟。

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 7174102052 41 52 14 53 61 61 3

Sample Output

71 2 4 5 1 3 6 1
 

Hint

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

 

题解

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

代码

1 #include 
2 #include
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

你可能感兴趣的文章
HDU 1248 寒冰王座 完全背包 水题
查看>>
R的优势
查看>>
使用repeater开发出现 回发或回调参数无效 的问题
查看>>
2018蓝桥杯决赛引出来的琐事
查看>>
17. Letter Combinations of a Phone Number
查看>>
jQuery表单省市区城市三级联动
查看>>
转—DataTable按时间排序和查询
查看>>
KindEdit 的编辑插件的提问家
查看>>
Springboot项目统一异常处理
查看>>
PAT1025. PAT Ranking
查看>>
The difference between macro and function I/Ofunction comparision(from c and pointer )
查看>>
jekins自动部署tomcat注意事项、连接tomcat报错
查看>>
Android--ViewPager的无限轮播
查看>>
使用jdbc给一张表增加多行字段
查看>>
My97DatePicker时间控件使用
查看>>
如何给Runnable线程传递参数?
查看>>
sql2008无法远程连接问题设置
查看>>
Python 自动补全(vim)
查看>>
封装 DBDA 类 StrQuery 、JSONQuery
查看>>
ADO.NET(一)
查看>>