博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【t016】邮递员
阅读量:4928 次
发布时间:2019-06-11

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

Time Limit: 1 second

Memory Limit: 32 MB

【问题描述】

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

【输入格式】

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

【输出格式】

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

【输入样例1】

6 7174102052 41 52 14 53 61 61 3

【输出样例1】

71 5 4 2 1 6 3 1

【数据规模】

对于30%的数据,有N≤20;对于100%的数据,有N≤200。

【题目链接】:

【题意】

【题解】

。。。。。。
好吧还是说两句;
如果度数都是偶数的话;
是能够构成欧拉回路的;
然后其实先到哪一个村子是无所谓的;
因为先到的能节约时间,后到的虽然费时了,但是也和前面节约的时间弥补了;
也就是说先到哪个村子的;
花费是没差的;
(完成一个欧拉回路之后就好);
当然,这题感觉很有问题吧。
不用理这题了。
【完整代码】

#include 
#include
#include
#include
using namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define LL long long#define rep1(i,a,b) for (int i = a;i <= b;i++)#define rep2(i,a,b) for (int i = a;i >= b;i--)#define mp make_pair#define pb push_back#define fi first#define se second#define rei(x) scanf("%d",&x)#define rel(x) scanf("%lld",&x)typedef pair
pii;typedef pair
pll;const int dx[9] = { 0,1,-1,0,0,-1,-1,1,1 };const int dy[9] = { 0,0,0,-1,1,-1,1,-1,1 };const double pi = acos(-1.0);const int N = 220;int n, m,tot = 0;int a[N],w[N][N],sta[N];void dfs(int x){ rep1(i,1,n) if (w[x][i] > 0) { w[x][i]--, w[i][x]--; dfs(i); } tot++; sta[tot] = x;}int main(){ //freopen("F:\\rush.txt", "r", stdin); rei(n), rei(m); rep1(i, 1, n) rei(a[i]); rep1(i, 1, m) { int x, y; rei(x), rei(y); w[x][y]++, w[y][x]++; } dfs(1); printf("%d\n", tot-1); rep2(i, tot, 1) printf("%d ", sta[i]); return 0;}

转载于:https://www.cnblogs.com/AWCXV/p/7626580.html

你可能感兴趣的文章
sqlsever 科学计数法e 问题
查看>>
2015年蓝桥杯省赛A组c++第1题
查看>>
解决CentOS缺少共享库
查看>>
写在人生的路上——2016年上半年总结
查看>>
hat linux下vnc的安装
查看>>
Perl Nmap处理脚本
查看>>
[BZOJ4668]冷战(并查集)
查看>>
ajax提交表单+前端验证小示例
查看>>
JQery 中的 $(".bb:eq(1)") eq () 解释。。
查看>>
实验 1-1
查看>>
delphi 接口Interface
查看>>
弹性盒模型display:flex
查看>>
应用层常用协议
查看>>
iOS 7 UI 过渡指南 - 開始之前(iOS 7 UI Transition Guide - Before You Start)
查看>>
POJ2155:Matrix(二维树状数组,经典)
查看>>
JDK5什么是新的堵塞队列线程(四)
查看>>
怎样基于android4.4.2的源代码和android-4.3.1_r1的驱动编译I9250的ROM
查看>>
TCP和UDP协议的应用/参数查看
查看>>
要看的
查看>>
[翻译]ASP.NET MVC 3 开发的20个秘诀(四)[20 Recipes for Programming MVC 3]:实现多语言支持...
查看>>