scu-4440 rectangle (非原创)

Rectangle

frog has a piece of paper divided into nn rows and mm columns. Today, she would like to draw a rectangle whose perimeter is not greater than kk .

There are 88 (out of 99 ) ways when n=m=2,k=6n=m=2,k=6

Find the number of ways of drawing.

Input

The input consists of multiple tests. For each test:

The first line contains 33 integer n,m,kn,m,k (1≤n,m≤5?104,0≤k≤1091≤n,m≤5?104,0≤k≤109 ).

Output

For each test, write 11 integer which denotes the number of ways of drawing.

Sample Input

    2 2 6
    1 1 0
    50000 50000 1000000000

Sample Output

    8
    0
    1562562500625000000

这题我看到一个题解,感觉写的很透彻,放这存一下。

题意:给定长度,求在不大于这个长度下,有多少个矩形(矩形周长不大于给定长度)。主要是用到了矩形的对称性  以及以下这个性质  在长为n,宽为m的矩形上,长为i,宽为j的矩阵个数为(n-i+1)x(m-j+1)。

证明:首先考虑n在一个长为n的矩形中从1~i,2~i+1,3~i+2,n-i+1~n;分别为长为i的矩形同理考虑m宽为j的矩形1~j,2~j+1,3~j+2,m-j+1~m;这样的话在1~j下就有n-i+1个矩形所以总共就是(n-i+1)x(m-j+1);

那么这道题的答案就出来了  记num=k/2-i (num>0)  k为周长  i为长  num为宽  在num<=m时  num可以取1,2,3,…,num  所以答案为  ans=(n-i+1)x(m-1+1)+(n-i+1)x(m-2+1)+…+(n-i+1)*(m-num+1);  提取(n-i+1),就是一个等差数列  所以  ans+=(n-i+1)x(2m-num+1)num/2;  当num>m时  num替换为m  ans+=(n-i+1)x(2m-m+1)m/2;  ans+=(n-i+1)x(m+1)m/2;  代码如下
#include<cstdio>
#define ll long long
ll n,m,k,ans,num;
int main()
{
  while(~scanf("%lld%lld%lld",&n,&m,&k))
  {
    ans=0;
    for(int i=1;i<=n;i++)
    {
      num=k/2-i;
      if(num<=m&&num>0)ans+=(n-i+1)*(2*m-num+1)*num/2;
      else if(num>0)ans+=(n-i+1)*(1+m)*m/2;
    }
    printf("%lld\n",ans);
  }
  return 0;
}

  

题解地址:http://blog.csdn.net/VictorZC8/article/details/51242491

时间: 2024-10-10 04:39:47

scu-4440 rectangle (非原创)的相关文章

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,&

有关中小非原创小说网站SEO的思考

晃眼两年过去了,12年后自己开了家小公司,线下实体,网站这块都荒废了,前段时间闲着没事又捡起了闲置的域名,两年多没做了,只剩下不到20个域名,随便选了几个准备做小说网挂着,心不大,服务器和域名的费用收回就够了. 刚开始建了三个,本地调试好,放服务器应该不到3个小时,首页就被百度收录,这一点来说现在百度还是相对做的很不错的,是最快的(未发新外链),其次就是360搜索,大概第二天到第三天陆续收录了首页,最慢的当属搜狗了差不多接近一周才收录(如果不是小说站我是不会考虑搜狗的).其中一个相对比较幸运,开

新辰:SEOer如何降低非原创文章带来的影响?

1.相关资料 官方文档:http://htmlparser.sourceforge.net/samples.html API:http://htmlparser.sourceforge.net/javadoc/index.html 其它HTML 解释器:jsoup等.由于HtmlParser自2006年以后就再没更新,目前很多人推荐使用jsoup代替它. 2.使用HtmlPaser的关键步骤 (1)通过Parser类创建一个解释器 (2)创建Filter或者Visitor (3)使用parser

Linux下high CPU分析心得【非原创】

非原创,搬运至此以作笔记, 原地址:http://www.cnitblog.com/houcy/archive/2012/11/28/86801.html 1.用top命令查看哪个进程占用CPU高gateway网关进程14094占用CPU高达891%,这个数值是进程内各个线程占用CPU的累加值. PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND     14094 root      15   0  315m 

CSS样式命名整理(非原创)

非原创,具体出自哪里忘了,如果侵害您的利益,请联系我. CSS样式命名整理 页面结构 容器: container/wrap 整体宽度:wrapper 页头:header 内容:content 页面主体:main 页尾:footer 导航:nav 侧栏:sidebar 栏目:column 中间内容:center 导航 导航:nav 导航:mainbav/globalnav 子导航:subnav 顶导航:topnav 边导航:sidebar 左导航:leftsidebar 右导航:rightside

发现一段精简的模板算法(非原创)

引用自: http://ejohn.org/blog/javascript-micro-templating/ // Simple JavaScript Templating // John Resig - http://ejohn.org/ - MIT Licensed (function(){ var cache = {}; this.tmpl = function tmpl(str, data){ // Figure out if we're getting a template, or

字符串相似度计算的方法,使用SQL以及C#实现,本文非原创摘自网络(.NET SQL技术交流群入群206656202需注明博客园)

1 CREATE function get_semblance_By_2words 2 ( 3 @word1 varchar(50), 4 @word2 varchar(50) 5 ) 6 returns nvarchar(4000) 7 as 8 begin 9 declare @re int 10 declare @maxLenth int 11 declare @i int,@l int 12 declare @tb1 table(child varchar(50)) 13 declare

Java Interface 是常量存放的最佳地点吗?(转帖学习,非原创)

Java Interface 是常量存放的最佳地点吗?(转帖学习,非原创) 由于java interface中声明的字段在编译时会自动加上static final的修饰符,即声明为常量.因而interface通常是存放常量的最佳地点.然而在java的实际应用时却会产生一些问题. 问题的起因有两个,第一,是我们所使用的常量并不是一成不变的,而是相对于变量不能赋值改变.例如我们在一个工程初期定义常量∏=3.14,而由于计算精度的提高我们可能会重新定义∏=3.14159,此时整个项目对此常量的引用都应

base64编码及JNI实现,代码非原创,只做整理和实现JNI端交互

直接上代码: #include <stdlib.h> #include <stdio.h> #include <getopt.h> #include <string.h> #include "base64.h" extern "C" { //Base64 编码 int Base64Encode(unsigned char *OrgString, unsigned char *Base64String, int OrgS

Java 表达式解析(非原创)

因项目需要,在网上找来一套表达式解析方法,由于原来的方法太过于零散,不利于移植,现在整理在同一文件内: 文件中包含5个内部类,源码如下: 1 import java.util.ArrayList; 2 import java.util.Date; 3 import java.util.List; 4 import java.util.Stack; 5 6 /** 7 * @项目名称: sunson_pams 8 * @类名称: FormulaUtils 9 * @类描述: 非原创(慎用) 10