P2241 统计方形(数据加强版)

题目背景

1997年普及组第一题

题目描述

有一个n*m方格的棋盘,求其方格包含多少正方形、长方形

输入输出格式

输入格式:

n,m因为原来数据太弱,现规定m小于等于5000,n小于等于5000(原来是100,100)

输出格式:

方格包含多少正方形、长方形

输入输出样例

输入样例#1:

2 3

输出样例#1:

8 10

正方形个数

边长为1 个数n*m

边长为2 个数(n-1)*(m-1)

边长为3 个数(n-2)*(m-2)

所以 边长为min{n,m} 个数(m-min{n,m}+1)*(n-min{n,m}+1)

长方形加正方形个数

total=(1+2+3+…+n)*(1+2+3+…+m)

=((1+n)*(1+m)*n*m)/4

长方形个数

上面两式相减即可得出

所以思路就是 先算出正方形个数 然后用公式得出长方形和正方形个数总和 最后得到长方形个数

代码很短

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 using namespace std;
 6 int main()
 7 {
 8     long long n,m;
 9     long long ans1=1,ans2=0;
10     cin>>n>>m;
11     ans1=n*m;
12     long long p=(((1+n)*(1+m))*(n*m))/4;
13     while(n--&&m--)
14     {
15         ans1+=(n*m);
16     }
17     cout<<ans1<<" "<<p-ans1;
18 }
时间: 2024-10-08 23:36:23

P2241 统计方形(数据加强版)的相关文章

luogu P2241 统计方形

题目背景 1997年普及组第一题 题目描述 有一个n*m方格的棋盘,求其方格包含多少正方形.长方形 输入输出格式 输入格式: n,m因为原来数据太弱,现规定m小于等于5000,n小于等于5000(原来是100,100) 输出格式: 方格包含多少正方形.长方形 输入输出样例 输入样例#1: 2 3 输出样例#1: 8 10 计算矩形中小矩形个数公式:(((1+n)*(1+m))*(n*m))/4:注:n,m为其边长,个数中仍包含有特殊矩形(正方形): #include<iostream> #in

统计方形(数据加强版)

洛谷P2241 统计方形(数据加强版) 我的做法是在求矩形时(包括正方形),用的是长从1~m,宽从1~n枚举的,但是数学方法往往能起到四两拨千斤的效果,其实矩形的个数就是Cn+22  *  Cm+22.因为确定一个矩形只需要确定它的两个端点就可以了,为啥要n+1,m+1呢?因为矩形边长可以为1,就是另一个点选空.若只求长方形,用容斥原理即可. #include<bits/stdc++.h> using namespace std; unsigned long long n,m; unsigne

贞鱼传教&amp;&amp;贞鱼传教(数据加强版)

http://acm.buaa.edu.cn/problem/1381/ 贞鱼传教[问题描述] 新的一年到来了,贞鱼哥决定到世界各地传授“贞教”,他想让“贞教”在2016年成为世界第四大宗教.说干就干......贞鱼哥把即将接受传教的人排成一行,每个人从左到右的编号为1-n.每个人有一个信仰值,一开始所有人的信仰值为0.接着贞鱼哥会做以下两件事之一: 1.贞鱼哥向连续的一段人群传教.具体来说,贞鱼哥会使第l个人到第r个人之间的所有人的信仰值增加k. 2.贞鱼哥想知道某一段人的信仰值之和,于是他想

[bzoj2594][Wc2006]水管局长数据加强版

论蒟蒻的自我修养T_T.. 和noi2014魔法森林基本一样...然而数据范围大得sxbk...100w你告诉我(n+m)log(n+m)可过?[掀桌] 蒟蒻又蠢了..复杂度应该是O((n+q)log(n+m))吧.. 一开始数组开太小re了两发(要开到maxn+maxm),然后又开太大mle一发,然后无限tle...把记录类型全改成数组还是tle.... 最后把非lct部分改得和黄学长全部一样终于20+s卡过去了......... 然后发现自己原来是有个地方写萎了..一开始把没被删的边做kru

echart+jquery+json统计TP数据

由于工作需要,需要统计交易数据的TP50,TP90,TP95,TP99.采用的前端技术是jquery+json+echart. 一.TP定义(谷歌) Calculating TP is very simple: 1. Sort all times in ascending order: [2s, 10s, 100s, 1000s] 2. find latest item in portion you need to calculate. 2.1 For TP50 it will be ceil(

EXCEL表格自动统计测试用例数据的方法

做测试的同学写用例会用到一些工具,但其实大部分都用excel在管理着用例,当用例 数量较多,比如几千条甚至上万条时,统计测试用例及测试结果数据就是个头大的事情. 各位有福了,老衲把多年的经验传授给大家. 我们有个目录和另外很多个表单,这里我只举例"设备连接及信息"表单, 这里是我们的目录,用例的所有数据都会自动显示在这里,并且是实时变化的. 这是"设备连接及信息"表单里的用例里测试类型下的列表数据,这里有五个列表. 这是"设备连接及信息"表单里的

bzoj 2594: [Wc2006]水管局长数据加强版 动态树

2594: [Wc2006]水管局长数据加强版 Time Limit: 25 Sec  Memory Limit: 128 MBSubmit: 934  Solved: 291[Submit][Status] Description SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处送往y处,嘟嘟需要为供水公司找到一条从A至B的水管的路径,接着通过信息化的控制中心通知路径上的水管进入准备送水状态,等到路径

【BZOJ 2594】 [Wc2006]水管局长数据加强版

2594: [Wc2006]水管局长数据加强版 Time Limit: 25 Sec  Memory Limit: 128 MB Submit: 1138  Solved: 364 [Submit][Status] Description SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处送往y处,嘟嘟需要为供水公司找到一条从A至B的水管的路径,接着通过信息化的控制中心通知路径上的水管进入准备送水状态,等

luogu P1120 小木棍 [数据加强版]

二次联通门 : luogu P1120 小木棍 [数据加强版] /* luogu P1120 小木棍 [数据加强版] 暴搜 + 剪枝 枚举可能的长度 挨个检查答案 二分显然正确性不能保障 搜索时从最大的开始找 放上当前木棍后的长度比枚举的长度要大, 则退出 若当前的长度与当前扫到的木棍长度相同, 或是还需要的长度与枚举的长度相同,则退出 若当前的木棍不符合要求, 则后面与它长度相同的木棍都不行 */ #include <algorithm> #include <iostream>