1 条题解

  • 1
    @ 2023-5-22 21:00:07

    更好的阅读体验

    T1 矩形纸片

    题目链接

    http://czoj.com.cn/p/P1672

    来源 CZOJ

    题目思路

    题面中的 10910^9 完全吓唬人用的。

    考虑到 1a,b,c,d,x,y10001\leq a,b,c,d,x,y\leq 1000,最暴力的方法开个 2000×20002000\times 2000 大小的数组存每个位置是否覆盖。

    时间复杂度 O(a×b+c×d+20002)\mathcal O(a\times b+c\times d+2000^2)

    或者考虑容斥,用第一个的覆盖面积加上第二个的覆盖面积减去重合面积。特判如果 (x,y)(x,y) 与第一个纸片没有重合就没有重合面积。


    Solution by @

    完整代码

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int a,b,c,d,x,y;
        cin>>a>>b>>c>>d>>x>>y;
        cout<<(a*b)+(c*d)-(x>a||y>b?0:min(a-x+1,c)*min(b-y+1,d))<<endl;   
        return 0;
    }
    

    Code by @

    • 1

    信息

    ID
    673
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    191
    已通过
    76
    上传者