【t016】邮递员
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 7
1
7
4
10
20
5
2 4
1 5
2 1
4 5
3 6
1 6
1 3
【输出样例1】
7
1 5 4 2 1 6 3 1
【数据规模】
对于30%的数据,有N≤20;
对于100%的数据,有N≤200。
【题目链接】:http://noi.qz5z.com/viewtask.asp?id=t016
【题意】
【题解】
。。。。。。
好吧还是说两句;
如果度数都是偶数的话;
是能够构成欧拉回路的;
然后其实先到哪一个村子是无所谓的;
因为先到的能节约时间,后到的虽然费时了,但是也和前面节约的时间弥补了;
也就是说先到哪个村子的;
花费是没差的;
(完成一个欧拉回路之后就好);
当然,这题感觉很有问题吧。
不用理这题了。
【完整代码】
#include <cstdio>
#include <vector>
#include <algorithm>
#include <cmath>
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<int, int> pii;
typedef pair<LL, LL> 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;
}
【t016】邮递员的更多相关文章
- 洛谷P1629 邮递员送信
题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要一定的时间.这个邮递员每 ...
- codevs3872 邮递员送信(SPFA)
邮递员送信 时间限制: 1 Sec 内存限制: 64 MB提交: 10 解决: 5[提交][状态][讨论版] 题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2 ...
- P1629 邮递员送信
题目描述: 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要一定的时间.这个邮递员 ...
- [题解]邮递员寄信(luoguP1629)
题目来源:luoguP1629 题目描述 有一个邮递员要送东西,邮局在结点1.他总共要送N-1样东西,其目的地分别是2-N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条 ...
- 【BZOJ5471】[FJOI2018]邮递员问题(动态规划)
[BZOJ5471][FJOI2018]邮递员问题(动态规划) 题面 BZOJ 洛谷 给定平面上若干个点,保证这些点在两条平行线上,给定起点终点,求从起点出发,遍历所有点后到达终点的最短路径长度. 题 ...
- DatagramSocket(邮递员):对应数据报的Socket概念,不需要创建两个socket,不可使用输入输出流。
UDP编程: DatagramSocket(邮递员):对应数据报的Socket概念,不需要创建两个socket,不可使用输入输出流. DatagramPacket(信件):数据包,是UDP下进行传输数 ...
- 【BZOJ1210】[HNOI2004]邮递员 插头DP+高精度
[BZOJ1210][HNOI2004]邮递员 Description Smith在P市的邮政局工作,他每天的工作是从邮局出发,到自己所管辖的所有邮筒取信件,然后带回邮局.他所管辖的邮筒非常巧地排成了 ...
- 洛谷——P1629 邮递员送信
P1629 邮递员送信 题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要 ...
- 洛谷 P1629 邮递员送信
题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要一定的时间.这个邮递员每 ...
随机推荐
- jmeter连接mysql数据库配置
用jmeter连接mysql数据库,在配置的过程中遇到了几个坑,跟大家分享一下,避免人人踩坑~~ 关于驱动包:大部分时候是需要下载与服务器的mysql相同版本的jar包~~ 关于驱动包路径:不是所有的 ...
- 原生js大总结六
051.如何打印当前浏览器的版本等信息 navigator.userAgent 返回包含浏览器版本等信息的字符串 ,常用于判断浏览器版本及使用设备(PC或者移动端 052 .在浏览器地址栏 ...
- [D3] Add image to the node
We can create node with 'g' container, then append 'image' to the nodes. // Create container for the ...
- Android Material风格的应用(二)--RecyclerView
添加RecyclerView Android Material风格的应用(一)--AppBar TabLayoutAndroid Material风格的应用(二)--RecyclerViewAndro ...
- Altium Designer如何删除以布的线
- vue项目在其他电脑运行报错
解决方法1.先删除node_modules文件夹2.$ cnpm cache clean 命令清除掉cache缓存3.cnpm install4.npm run dev
- jQuery笔记---选择器(三)
1.1查找隐藏的tr元素的个数 $(“table tr:hidden”).size() 查找所有可见的tr元素的个数 $(“table tr:not(:hidden)”).size() 一般是不使 ...
- Oracle 12CR2 中alert.log出现大量的 WARNING: too many parse errors 告警
Oracle 12CR2 中alert.log出现大量的 WARNING: too many parse errors 告警 日志如下: 2018-06-24T17:16:21.024586+08 ...
- centos中的配置文件 分类: B3_LINUX 2015-04-03 22:21 184人阅读 评论(0) 收藏
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc:为每一个 ...
- CSS Sprite的相关概念
原文 简书原文:https://www.jianshu.com/p/8ae3be23a642 大纲 1.什么是CSS Sprite 2.CSS Sprite的优点 3.CSS Sprite的缺点 4. ...