励志用少的代码做高效表达


Problem Describe

frog has a piece of paper divided into (n) rows and (m) columns. Today, she would like to draw a rectangle whose perimeter is not greater than (k).
There are 8 (out of 9) ways when n = m = 2, k = 6
There are (8) (out of (9)) ways when (n = 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 3 integer n,m,k (1≤n,m≤5⋅10e4,0≤k≤1e9).

Output

For each test, write 1 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


题目(提交)网址——>传送门

题意

给定长度,求在不大于这个长度下,有多少个矩形(矩形周长不大于给定长度)。

心路历程

起初看到这道题,想都没想,数…….找规律
结果找了2个小时规律
愣是没找出来
问了问同学,同学说是暴力
我*

SB的我竟然还想用公式,难怪推不出来
暴力的话,这道题就简单明了了
主要是用到了矩形的对称性
以及以下这个性质
在长为n,宽为m的矩形上,长为i,宽为j的矩阵个数为

(n−i+1)∗(m−j+1)(n-i+1)*(m-j+1)(n−i+1)∗(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(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;}

14行代码AC_SCU 4440 Rectangle(公式+矩阵对称性)相关推荐

  1. 如何用 14 行代码制作 NFT

    如果您是对区块链开发感兴趣的开发人员,您应该对 NFT 或非同质代币有所了解.在本文中,我们将了解它们背后的工程,以便您开始构建自己的. 在项目结束时,您将拥有自己的以太坊钱包,其中包含一个新的 NF ...

  2. python爬虫代码1000行-简单用14行代码写一个Python代理IP的爬虫

    相信用别的语言只用14行是写不出来这样的效果的!而我们的Python 只需要区区的14行代码就能写出来哦! 这就是Python为什么是全球现在比较流行的语言之一了!因为简单 容易学! 比较上手! 现在 ...

  3. python数学公式编辑工具_1行代码搞定Latex公式编写,这个4.6M的Python小插件,堪称论文必备神器...

    原标题:1行代码搞定Latex公式编写,这个4.6M的Python小插件,堪称论文必备神器 来源:量子位 关注前沿科技 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 萧箫 发自 凹非寺 ...

  4. Python爬虫:想听榜单歌曲?使用BeautifulSoup库只需要14行代码即可搞定

    目录 BeautifulSoup库 安装BeautifulSoup库 BeautifulSoup库简介 选择解释器 基础用法 节点选择器 获取节点名称属性内容 获取所有子节点 获取所有子孙节点 父节点 ...

  5. 1行代码搞定Latex公式编写,这个4.6M的Python小插件,堪称论文必备神器

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 写论文时,手敲成堆的计算公式,被虐到头秃? 做讲课PPT时,几十页的计算推理公式,恨不得直接手写拍照? 现在,解放双手的时刻来了,只需要掌握 ...

  6. 论文必备神器,1行代码搞定Latex公式编写,这个4.6M的Python小插件

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:量子位 报道 | 公众号 QbitAI AI博士笔记系列推荐 ...

  7. tex中让公式和文字在一行_1行代码搞定LaTeX公式编写,这个4.6M的Python小插件,堪称论文必备神器...

    点击上方"深度学习工坊",选择加"星标" 重磅干货,第一时间送达 萧箫 发自 凹非寺 本文转载自:量子位(QbitAI) 写论文时,手敲成堆的计算公式,被虐到头 ...

  8. 14行代码满分:1037 在霍格沃茨找零钱 (20分)

    立志用更少的代码做更高效的表达 PAT乙级最优题解-->传送门 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个 ...

  9. 14行代码AC——1017 A除以B (20分)(大数运算+讲解)

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数.你需要输出商数 Q 和余数 ...

最新文章

  1. ls和find命令查找的一些小技巧
  2. vim 插件之commentary
  3. Web3.0 兴起之际,元宇宙这杯羹怎么分?
  4. dj鲜生-29-登陆后欢迎信息的显示
  5. Golang配置文件解析-oozgconf
  6. Python--Flask初学Demo(11.10)
  7. pip 更新版本失败问题解决
  8. python-day34--进程补充
  9. 综合布线系统就是连接计算机等终端的什么,综合布线系统安装的方法是什么?哪位清楚?...
  10. 跟闺密逛街 越逛越穷
  11. 量子力学 计算机应用,量子力学在身边:量子力学在现实世界的十大应用.doc
  12. 常用的接口测试工具有哪些?
  13. java数组实现五子棋
  14. 【解决方法】Pymongo insert 卡住
  15. 所有程序员会面临的问题:程序员只能吃青春饭?
  16. 数据库系统概论-第三章 关系数据库标准语言 SQL
  17. JS获取时间和设置倒计时
  18. 【Python成长之路】python资料共享
  19. U盘安装Linux系统教程
  20. 软考知识点---20标准化与法律法规

热门文章

  1. 使用Scrapy框架发送POST请求
  2. Python 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
  3. 深入理解Kubernetes容器网络
  4. 字节跳动---特征提取
  5. CRI陆宵吴:夯实底层,音视频技术未来不远
  6. 来自曾经一起“挥洒汗水”的志愿者伙伴们的一封信
  7. Hadoop之Hadoop序列化
  8. 从Google Mesa到百度PALO(数仓)
  9. tmux多窗口工具基本操作
  10. 大剑无锋之简单介绍一下虚拟内存【面试推荐】