题解 P1548 【棋盘问题】
看到各位大佬手算公式,身为蒟蒻的我早已吓呆了
题目说的好,m,n<100,常言“暴力出奇迹”,我立刻想到了:
枚举
怎么枚举呢,显然,我可以先枚举左上的点,再枚举右下的点,坐标一减,是不是正方形显而易见
号称全国NO.1易懂的代码:
#include<bits/stdc++.h>
using namespace std;
int m,n,z,c,i,j,k,l; //z用来记正方形个数,c来记长方形
int main()
{
cin>>m>>n; //输入
for(i=0;i<=m;i++) //枚举
for(j=0;j<=n;j++) //枚举
for(k=i+1;k<=m;k++) //还是枚举
for(l=j+1;l<=n;l++) //仍然是枚举
if(k-i==l-j)z++; //是正方形
else c++; //是长方形
cout<<z<<" "<<c; //输出
}