PA求调
查看原帖
PA求调
1271572
Moxiang_Terry楼主2025/6/23 20:33

我的思路是这样:

总体的图形数量(正方形+长方形)为: 12n(n+1)×12m(m+1)\frac{1}{2}n(n+1)\times \frac{1}{2}m(m+1)

然后求出正方形的个数就行

先把边长为1的加上,即初始值为 n×mn\times m

然后从2遍历,就是 for(int i=2;i<min(n,m);i++)

然后可以知道在m这一行边长为i的有 mi+1m-i+1

同理,在n这一行边长为i的有 ni+1n-i+1

故边长为i的正方形有:(mi+1)(ni+1)(m-i+1)(n-i+1)

这样顺次相加,就可以写出代码:

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n,m;
    cin>>n>>m;
    int all=0.5*n*(n+1)*0.5*m*(m+1);
    int sq=m*n;
    for (int i=2;i<=min(m,n);i++){
        sq+=(n-i+1)*(m-i+1);
    }
//    cout << all<<endl;
    cout << sq<<" "<<all-sq<<endl;
    return 0;
}

结果就得了40pnt,十分惨烈

求大佬指点qwq

2025/6/23 20:33
加载中...