数据貌似水了
查看原帖
数据貌似水了
1019841
JayMe楼主2023/11/29 19:19

以下是code,似乎有些思路上的问题但是居然过了

有木有大佬帮忙指导一下

/*
推一下公式...暴力好麻烦
长2宽3: 正方形8个 长方形10个
怎么得出来的呢
*/
/*Part one:正方形 
正方形:从边长为1开始,一直到边长为min(n,m)
边长为i时有多少个边长为i的正方形呢
要注意,长为3时,边长为2的正方形是有两个的,以此类推
我们不能用n(或m)/i来求正方形数量,而是n(或m)-i+1 
(n-i+1)*(m-i+1)  
*/
/*Part two:长方形 
众所周知正方形是特殊的长方形,所以我们可以用
矩形的数量-正方形的数量=长方形的数量
矩形的数量一定非常好算了!和正方形大差不差的方法 
*/ 
/*Part three:矩形
和正方形基本一致的,只不过正方形考虑边长,矩形考虑的则是长和宽
枚举当长为i,宽为j时的矩形数量
(n-i+1)*(m-j+1) 
*/ 
/*
现在基本思路都完成了!
可以试着构成一下?  
*/ 
#include<iostream>
using namespace std;
int n,m,zfx,jx,c;
int main(){
	cin>>n>>m;
	c=min(n,m);
	for(int i=1;i<=c;i++)
		zfx+=(n-i+1)*(m-i+1); 
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			jx+=(n-i+1)*(m-j+1);
	cout<<zfx<<" "<<jx-zfx;
	return 0;
}
2023/11/29 19:19
加载中...