Skip to content

Latest commit

 

History

History
54 lines (27 loc) · 754 Bytes

显而易见的事实.md

File metadata and controls

54 lines (27 loc) · 754 Bytes

A. Lame King

题意:

正方形棋盘,国王从中心开始走,每次有五种选择,上、下、左、右、停止。求到达(a, b)至少要几步。

思路:

(-4, -3) (4, 3) (-4, 3) (4, -3) 这些点到(0,0)的距离是相同的

对称性的问题,可以通过以下方式来解决:(abs(x), abs(y)) 问题就到转化到第一象限了

代码:

void solve() {
    int a, b;
    std::cin >> a >> b;
    
    a = std::abs(a);
    b = std::abs(b);
    if (a < b) {
        std::swap(a, b);
    }
    //两次对称处理,四个象限归一和对角线处理
    
    if(a == b){
        cout<< a + b << '\n';
    }
    else{
        cout<< 2*a-1 <<'\n';
    }
    return;
}