[洛谷] P2241 统计方形(数据加强版)
点击查看代码
#include<bits/stdc++.h>
using namespace std;
long long n, m, total, sum1, sum2;
int main()
{
cin >> n >> m;
int min_mn = min(m ,n);
for (int i = 1; i <= min_mn; i++) {
sum1 += (n - i + 1) * (m - i + 1);
}
cout << sum1 << " ";
total = ((n + 1) * n / 2) * ((m + 1) * m / 2);
cout << total - sum1;
return 0;
}
有两种解题思路,一种是推导出正方形个数和长方形个数的公式,一种是通过枚举。这里给出数学公式的推导思路。
所有可能的矩形个数:任意的一个矩形都是由上下左右四条边组成,对于 n × m 的方格,横边共有 n + 1 条,竖边共有 m + 1 条,从横边中选择两条,从竖边中选择两条即可组成矩形,横边的选择有 n × (n + 1) / 2 个,竖边的选择有 m × (m + 1) / 2 个,故所有矩形的个数为 n × (n + 1) / 2 × m × (m + 1) / 2
正方形的个数:假定正方形的边长为 k , 则所有边长为 k 的正方形个数可以看成是一个 k × k 的正方形从左上角开始向右一格一格地移动,当走到行末时,再从下一行的第一个格子往右移动,当格子在一行内移动时,所有可能的个数为 m - k + 1 ,同理,当格子在一列内移动时,所有可能的个数为 n - k + 1 ,所有满足题干条件的正方形边长应同时小于 n 和 m ,故取 n 和 m 中的最小者为 t ,所有正方形的个数为 \({\sum }^{t}_{k=1}(n-k+1)\times (m-k+1)\)
[洛谷] P2241 统计方形(数据加强版)的更多相关文章
- 洛谷 P2241统计方形(数据加强版) 题解
题目传送门 说是加强版,其实可以把棋盘那道题的代码粘过来(注意要开long long): #include<bits/stdc++.h> using namespace std; ,c; ...
- 洛谷——P2241 统计方形(数据加强版)
https://www.luogu.org/problem/show?pid=2241 题目背景 1997年普及组第一题 题目描述 有一个n*m方格的棋盘,求其方格包含多少正方形.长方形 输入输出格式 ...
- 洛谷P1120 小木棍 [数据加强版](搜索)
洛谷P1120 小木棍 [数据加强版] 搜索+剪枝 [剪枝操作]:若某组拼接不成立,且此时 已拼接的长度为0 或 当前已拼接的长度与刚才枚举的长度之和为最终枚举的答案时,则可直接跳出循环.因为此时继续 ...
- 洛谷P2812 校园网络[数据加强版] [Tarjan]
题目传送门 校园网络 题目背景 浙江省的几所OI强校的神犇发明了一种人工智能,可以AC任何题目,所以他们决定建立一个网络来共享这个软件.但是由于他们脑力劳动过多导致全身无力身体被♂掏♂空,他们来找你帮 ...
- 洛谷 P1120 小木棍[数据加强版]
这道题可能是我做过的数据最不水的一道题-- 题目传送门 这题可以说是神剪枝,本身搜索并不算难,但剪枝是真不好想(好吧,我承认我看了题解)-- 剪枝: 用桶来存储木棍 在输入的时候记录下最长的木棍和最短 ...
- 洛谷 P2503 [HAOI2006]均分数据 随机化贪心
洛谷P2503 [HAOI2006]均分数据(随机化贪心) 现在来看这个题就是水题,但模拟赛时想了1个小时贪心,推了一堆结论,最后发现贪心做 不了, 又想了半个小时dp 发现dp好像也做不了,在随机化 ...
- 洛谷P2241-统计方形-矩形内计算长方形和正方形的数量
洛谷P2241-统计方形 题目描述: 有一个 \(n \times m\) 方格的棋盘,求其方格包含多少正方形.长方形(不包含正方形). 思路: 所有方形的个数=正方形的个数+长方形的个数.对于任意一 ...
- P2241 统计方形(数据加强版)
题目背景 1997年普及组第一题 题目描述 有一个n*m方格的棋盘,求其方格包含多少正方形.长方形 输入输出格式 输入格式: n,m因为原来数据太弱,现规定m小于等于5000,n小于等于5000(原来 ...
- 洛谷 P1308 统计单词数【字符串+模拟】
P1308 统计单词数 题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定 ...
随机推荐
- @RequestMapping 注解?
该注解是用来映射一个URL到一个类或一个特定的方处理法上.
- 什么是 WebSockets?
WebSocket 是一种计算机通信协议,通过单个 TCP 连接提供全双工通信信道. 1.WebSocket 是双向的 -使用 WebSocket 客户端或服务器可以发起消息发送. 2.WebSock ...
- Spring Boot 的配置文件有哪几种格式?它们有什么区别?
.properties 和 .yml,它们的区别主要是书写格式不同. 1).properties app.user.name = javastack 2).yml app: ...
- 如果leader crash时,ISR为空怎么办?
kafka在Broker端提供了一个配置参数:unclean.leader.election,这个参数有两个值:true(默认):允许不同步副本成为leader,由于不同步副本的消息较为滞后,此时成为 ...
- Oracle入门基础(十二)一一储存过程及触发器
1.第一个存储过程 打印Hello World 调用存储过程: 1.exec sayhelloworld(); 2.begin sayhelloworld(); sayhelloworld(); en ...
- springDataRedis忽略实体指定的属性
如果是通过 RedisRepository定义的实体,可能存在想要忽略的属性,那么,就可以 使用 org.springframework.data.annotation.Transient 注解,就可 ...
- SpringMvc怎么和AJAX相互调用的?
通过Jackson框架就可以把Java里面的对象直接转化成Js可以识别的Json对象.具体步骤如下 : (1)加入Jackson.jar (2)在配置文件中配置json的映射 (3)在接受Ajax方法 ...
- 小米手机BL解锁连接不上手机
解锁工具下载页面:http://www.miui.com/unlock/download.html 线刷工具下载页面:http://www.miui.com/shuaji-393.html 额外注意说 ...
- 1.0缓存:Login.aspx?
所有的manifest资源配置文件以CACHE MANIFEST声明开头. #(哈希标签)有助于提供缓存文件的版本. CACHE命令指定哪些文件需要被缓存. manifest资源配置文件的内容类型应是 ...
- 机器学习综合库gensim 简单搞定文本相似度
不废话直接代码吧 # 1.模块导入 import jieba import gensim from gensim import corpora from gensim import models fr ...