大佬们写的题解好长(。。
编写一个函数
int num(int x,int y){
//x长的线段上有多少段y长的线段
return x-y+1;
}
然后调用它,想想你怎么数长方形的
int tmp=num(n,x)*hlong(m,y);
举个例子:
在一边为2的情况下,从1枚举到2,相当于在它上面查找有多少个1~2的情况,另一边也是如此,计算好相乘并判断是否为正方形,加入到对应的变量即可
显而易见:
#include<iostream>
using namespace std;
long long f,c;
int hlong(int x,int y){
//x长的线段上有多少段y长的线段
return x-y+1;
}
int main(){
int n,m;
cin>>n>>m;
for(int x=1;x<=n;x++){
for(int y=1;y<=m;y++)
{
int tmp=hlong(n,x)*hlong(m,y);
if(x==y){
f+=tmp;
}else{
c+=tmp;
}
}
}
cout<<f<<" "<<c;
}
AC了!