Yali_ hn1021T2统计正方形

问题如下:
在这里插入图片描述
分析:
  下面设定讨论的网格图为nm的规模。
  格点正方形要求四个点都在格点上,先考虑正的正方形,正方形会有1
1,22,33…min(n,m) * min(n,m)的型号的正方形,那么这样的正方形分别是多少个呢?
在这里插入图片描述
  对于每个型号的三角形内,又有如下图所示的正的斜的正方形。
在这里插入图片描述
  你可以再多画几个,会发现,i*i的型号的正方形里包括的正的斜的正方形个数等于i个。因此我们可以得出这样的一个式子递推式:
在这里插入图片描述
下发附上AC代码一份:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int P = 1000000000+7;
ll ans;
int main(){
	ll n,m;
	scanf("%lld%lld",&n,&m);
    for(ll i= 1;i<= min(n,m); i++){
    	ans =  (ans +1ll * (n-i+1)*(m-i+1)*i%P ) % P;
    }
    cout << ans<< endl;
	return 0;
}

学循环时可以拿来练手的题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值