一重循环
2026-03-20 16:05:20
发布于:广东
164阅读
0回复
0点赞
自己去分析
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n,m;
cin>>n>>m;
long long rec=0,squ=0;
for(int a=1;a<=min(n,m);a++) squ+=(n-a+1)*(m-a+1);
rec=n*(n+1)*m*(m+1)/4-squ;
cout<<squ<<" "<<rec;
return 0;
}
全部评论 2
或者
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n,m;
cin>>n>>m;
long long squ=0,rec=0;
for(long long i=1;i<=n;i++){
for(long long j=1;j<=m;j++){
for(long long x=i;x<=n;x++){
for(long long y=j;y<=m;y++){
if(x-i == y-j) squ++;
else rec++;
}
}
}
}
cout<<squ<<" "<<rec;
return 0;
}2天前 来自 湖南
0这样好像也可以。
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n,m;
cin>>n>>m;
long long k=min(n,m);
long long d=max(n,m)-k;
long long squ = k*(k+1)(3d + k +1)/6;
long long total = n*(n+1)m(m+1)/4;
long long rec = total - squ;
cout<<squ<<" "<<rec;
return 0;
}2天前 来自 湖南
0













有帮助,赞一个