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——思路

CF 1036 B Diagonal Walking v.2 —— 思路

skywalking agent 本地缓存队列参数设置

详解Python-Numpy库的函数diagonal()并附函数diagonal()与函数diag()的区别