贝茜的飞行路线_波西亚时光 阿尔洛[通俗易懂]

贝茜的飞行路线_波西亚时光 阿尔洛[通俗易懂]题目:题目描述奶牛贝茜想到一个更温暖的地方去度过这个寒冷的冬天

贝茜的飞行路线_波西亚时光

题目:

题目描述
奶牛贝茜想到一个更温暖的地方去度过这个寒冷的冬天。不幸的是,她发现只有一家名叫AB的航空公司愿意把票卖给奶牛,而且这些票的构成很奇怪。AB有N架飞机,每架都有一个特定飞行路线,这个飞行路线包含2个或更多的城市。例如,一架飞机的路线可能是从城市1开始,然后飞到城市6,再飞到城市2,最后飞到城市8。没有城市会在一条路线上出现多次。如果贝茜决定使用这个路线,她可以在一条路线的任意一个城市上飞机,然后在路线上任意一个城市下飞机。她不用一定在第一个城市上 飞机,在最后一个城市下飞机。每条路线会有一个价格,不管贝茜沿途经过多少城市,她都要付这么多钱。

贝茜想找到最近的从城市A到城市B的距离。由于她不想被复杂的行程困惑,她想只使用一条单独的路线。请帮她决定她最少应该付多少钱。

输入输出格式
输入格式:
第1行包含3个数字A、B、N。

下面的2N行,描述可用的路线,每条路线的描述占两行。第一条路线包含路线费用,自己沿途有多少个城市(不超过500个)。第2行包含一个按顺序的城市的列表。

输出格式:
输出贝茜用一条飞行路线从城市A飞到城市B的最小费用。如果没有这样的路线,输入“-1”。

输入输出样例
输入样例#1: 
1 2 3
3 3
3 2 1
4 4
2 1 4 3
8 5
4 1 7 8 2
输出样例#1: 
8

题目链接:贝茜的飞行路线(算了团队私题您们也打不开)

思路:

乍一看像是一道图论,仔细一看发现这只是一道模拟题,暴力枚举就可以过了…

思路:

#include<bits/stdc++.h>
using namespace std;

int main() {
	int T;
	scanf("%d",&T);
	while(T--) {
		int a,b;
		scanf("%d%d",&a,&b);

		bool ans=1;
		if(a<b) swap(a,b);
		if(a>=2*b) {
			ans=0;
			goto tag;
		}
		while(b!=0) {
			ans^=1;
			if(a>=2*b) goto tag;
			a-=b;
			swap(a,b);
		}
tag:	if(ans==0) printf("Stan wins\n");
		else printf("Ollie wins\n");
	}
	return 0;
}

今天的文章贝茜的飞行路线_波西亚时光 阿尔洛[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/68487.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注