SCU 4440 Rectangle (思维+暴力)

Posted simpleknight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SCU 4440 Rectangle (思维+暴力)相关的知识,希望对你有一定的参考价值。

题意:给你一个n*m的方格,给定周长,求在不大于这个周长的情况下,问有多少个矩形 

思路:固定一边枚举边的长度,然后根据等差数列计算

代码:

#include <iostream>
#include <cstdio>
#include <cmath>
#define ll long long
using namespace std;

int main()
{
    ll n,m,k;
    while(scanf("%lld %lld %lld",&n,&m,&k)!=-1)
    {
        if(k<4) cout<<"0"<<endl;
        else
        {
            if(n>m) swap(n,m);
            ll ans = 0;
            for(ll x=1;x<=n;x++)
            {
                ll y=min(m,(k-2*x)/2);
                if(y<0) break;
                ans=ans+((n-x+1)*(2*m-y+1)*y)/2;
            }
            cout<<ans<<endl;
        }
    }
    return 0;
}

 

以上是关于SCU 4440 Rectangle (思维+暴力)的主要内容,如果未能解决你的问题,请参考以下文章

scu4437(二分)

85. Maximal Rectangle 由1拼出的最大矩形

SCU 4445 Right turn

2018年省赛热身赛第4场

CF1198E Rectangle Painting 2(最小割 思维

计数(数学题,思维技巧)