贝茜的飞行路线

题目:

题目描述
奶牛贝茜想到一个更温暖的地方去度过这个寒冷的冬天。不幸的是,她发现只有一家名叫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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值