统计方形(c++题解)

博客围绕一个n×m方格棋盘展开,要求计算其中正方形和长方形(不包含正方形)的数量。给出了输入输出格式及样例,作者采用半暴力半数学的方式解题,简洁省时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目背景

1997年普及组第一题

题目描述

有一个 n×m 方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。

输入格式

一行,两个正整数 n,m(n≤5000,m≤5000)。

输出格式

一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。

输入输出样例

输入 #1复制

2 3

输出 #1复制

8 10

_____________________________________________________________________________

分析:虽然本题类型为暴力,但是我用的半暴力半数学的方式做的,简洁省时;

写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

_____________________________________________________________________________

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4. int n,m,ans=0,cnt=0,bnu=0;
  5. cin>>n>>m;
  6. for(int i=1;i<=min(n,m);i++){
  7. ans+=(n-i+1)*(m-i+1);记录有多少个正方形
  8. }
  9. for(int i=1;i<=n;i++)cnt+=n-i+1;记录矩形才有多少中可能
  10. for(int i=1;i<=m;i++)bnu+=m-i+1;记录矩形宽有多少种可能
  11. cout<<ans<<" "<<bnu*cnt-ans;输出正方形个数,和长方形个数
  12. }

登录后您可以享受以下权益:

×
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

举报

选择你想要举报的内容(必选)
  • 内容涉黄
  • 政治相关
  • 内容抄袭
  • 涉嫌广告
  • 内容侵权
  • 侮辱谩骂
  • 样式问题
  • 其他
点击体验
DeepSeekR1满血版
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回顶部