欧拉路径

                      ZJOI2002Travel旅行家的难题


旅行家来到了一个著名的旅游胜地。这里的风景很好,旅行家想自己把所有的路都走一遍,这样可以自由地欣赏美丽的风景。不过他不想把自己已经走过的路再走一遍,在他看来,风景只有第一次看到的时候才是最美丽的。幸好,他可以在车站乘游览车去其它车站,然后继续他的旅程。不过他不喜欢浪费时间在坐车上,也不想花太多的钱在乘车上。所以他希望在看到尽可能多的风景的前提下,尽量少坐车,少花钱。
  这个旅游胜地一共有n个路口。每条路都是从某一个路口到达另一个路口。每个路口都设有一个车站。任意两个车站之间都有游览车直通。在同一个车站坐车不管到哪里车费都是一样的。但是不同的车站有着不同的收费标准。现在请你写一个程序,为旅行家设计一条路线,使得这条路线覆盖尽可能多的道路(不包括乘车经过的),并且乘车次数最少。如果存在两条以上符合要求的路线,选择花钱最少的一条。路线的起点和终点任意。

 

输入格式:

  输入包括了多个测试数据。每个测试数据开头是一个整数n(1<=n<=100),表示路口总数。接下来一行包括了n个整数,依次表示每个车站的收费标准。再接下来是一个整数m,表示道路总数。之后的m行每行包括两个整数x,y(1<=x,y<=n)分别表示该道路连接的两个路口。路口按照输入顺序从小到大依次编号。

 

输出格式:

对于每个测试数据,在单独一行里依次输出你设计的路线覆盖的道路数、坐车次数以及所用车费,中间用一个空格隔开。

 

样例输入:

5
3 5 8 7 2
6
1 2
1 3
1 5
2 5
3 4
3 5

 

样例输出:

6 2

 

数据范围:

1<=n<=100

 

时间限制:

1s

 

空间限制:

256M

欧拉路径,我们对于那些度为偶数的点可以直接一遍走完,如果有奇点,那么每次连线操作可以是两个奇点变为偶点,一个图能够被走遍当且仅当奇点个数为2或0,所以只需要统计奇点个数ll,输出前(ll)/2-1个钱最小的奇点和即可,边能走遍,直接输m,坐车次数即为(ll)/2-1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值