本文共 657 字,大约阅读时间需要 2 分钟。
题意:给你n个建筑物,标号1-n,每个建筑物有h层,同一个建筑物的相邻层之间互相可达,相邻建筑在a~b这些层之间的层互相可达,现在给你两个位置,建筑的标号和特定的层,问你从给出的一个位置到另一个位置最少需要移动多少次。
思路:如果两个位置在不同的建筑物上,我们从一个位置达到另一个位置首先达到可以移动的层的位置,然后平移移动到另一个建筑物,再从这一层到达另一个位置的层数。
这里要注意如果是在同一个建筑物里,则直接移动即可,这里需要特判一下。
#include#include using namespace std;int main(){ int n,h,a,b,k; cin>>n>>h>>a>>b>>k; while(k--) { int t1,f1,t2,f2; cin>>t1>>f1>>t2>>f2; if(t1==t2) { cout< < =b) { ans+=abs(f1-b); ans+=abs(f2-b); } else { ans+=abs(f1-f2); } cout< <
转载地址:http://pbgsi.baihongyu.com/