zoukankan      html  css  js  c++  java
  • SCU 4440 Rectangle 2015年四川省赛题

    题目链接:http://acm.scu.edu.cn/soj/problem/4440/

    题目大意:给一个n*m的方格,求周长小于等于k的矩形有多少个。 

    解题思路:我之前直接暴力,显然超时,所以后来发现,可以用等差数列的求前n项和公式来代替一层for循环,这样就只有一重循环了,不会超时。

    AC代码:

    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    #include <iostream>
    using namespace std;
    
    int main()
    {
     int n,m,k;
     long long sum;
     while(scanf("%d%d%d",&m,&n,&k)!=EOF)
     {
      sum=0;
      int c=2*(m+n);
      if(c<=k) sum=(long long)n*(n+1)*m*(m+1)/4;
      else
       {
        for(int i=1;i<=m;i++)
        {
         int j=(k-2*i)/2;
         if(j>0&&j<=n)
         {
          sum+=(long long)(n+n-j+1)*j/2*(m-i+1);
         }
         else
          if(j>n)
           sum+=(long long)(n+1)*n/2*(m-i+1);
        }
       }
      printf("%lld
    ",sum);
     }
     return 0;
    }
  • 相关阅读:
    边缘检测
    图片融合
    毛玻璃
    图像添加马赛克
    图像颜色反转
    图像灰度处理
    图像仿射变换/旋转
    图像剪切/位移
    图像缩放/插值
    神经网络逼近股票价格
  • 原文地址:https://www.cnblogs.com/www-cnxcy-com/p/5738288.html
Copyright © 2011-2022 走看看