1 条题解

  • 0
    @ 2026-10-18 18:28:50

    G2024 [GESP202512 二级] 黄金格 题解

    知识点:双重枚举、不等式、整数范围。

    解题思路

    逐格枚举行i、列j,将距离不等式整理为√(i²+j²)≤x+i-j。先判断右端非负,再比较平方。

    为什么正确

    右端非负时平方保持大小关系;负数不可能大于等于非负距离,须提前排除。

    易错点

    不能直接对负的右端平方;坐标平方和及平方比较用long long。

    复杂度

    时间O(hw),空间O(1)。

    参考代码(C++17)

    #include<bits/stdc++.h>
    
    using namespace std;
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        long long h,w,x,ans=0;
        cin>>h>>w>>x;
        for(long long i=1;i<=h;i++)for(long long j=1;j<=w;j++) {
            long long z=x+i-j;
            ans+=(z>=0&&i*i+j*j<=z*z);
        }
        cout<<ans;
    }
    

    说明

    本题解为配套教学整理,非官方题解。复杂度按本页参考实现计算,题库使用8个自行生成的测试点。

    • 1

    信息

    ID
    662
    时间
    1000ms
    内存
    512MiB
    难度
    进阶
    标签
    递交数
    1
    已通过
    1
    上传者