传送门:Rectangle
题目大意
给N*M的格子,求由多少种不超过周长为K的矩形
解题思路
枚举长为1~N的满足条件的情况,
然后找到宽度的最大值
求出高度有多少种可能性,
因为宽度的数量是一个等差数列,所以能通过等差数列的前n项和公式求
AC代码
#include<cstdio>
typedef long long LL;
int main()
{
int N,M;
LL K;
while(~scanf("%d%d%lld",&N,&M,&K))
{
K>>=1;
LL ans = 0;
for(int i=1;i<=N&&K-i>0;i++){
LL tmp = (K-i)<M?(K-i):M;
LL sumH= N-i+1;
LL sumW= (M+M-tmp+1)*tmp/2;
ans += sumH*sumW;
}
printf("%lld\n",ans);
}
return 0;
}