B. Diagonal Walking v.2
Posted mch5201314
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了B. Diagonal Walking v.2相关的知识,希望对你有一定的参考价值。
链接
[https://i.cnblogs.com/EditPosts.aspx?opt=1]
题意
二维平面从原点出发k步,要到达的点(x,y),每个位置可以往8个方位移动,问到达目的地最多可以走多少斜路
如果不可以到达输出-1;
分析
找规律,看代码自己琢磨
代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
ll q,x,y,k;
cin>>q;
while(q--){
cin>>x>>y>>k;
if(max(x,y)>k) {
cout<<-1<<endl;
continue;
}
if(x>y) swap(x,y);
if((y-x)&1) k--;
else if((k-y)&1) k-=2;
cout<<k<<endl;
}
return 0;
}
以上是关于B. Diagonal Walking v.2的主要内容,如果未能解决你的问题,请参考以下文章
Diagonal Walking v.2 CodeForces - 1036B (思维,贪心)
Codeforces 1036B Diagonal Walking v.2 贪心
CF 1036B Diagonal Walking v.2——思路