P2241 统计方形(数据加强版)(矩形中的正方,长方形统计)
统计方形(数据加强版)
题目背景
1997年普及组第一题
题目描述
有一个
输入格式
一行,两个正整数
输出格式
一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。
样例 #1
样例输入 #1
2 3
样例输出 #1
8 10
这里直接给结论了
n*m的矩形中长方形(不包括正方形)的数量,等于子矩形的数量减去子正方形的数量
又子矩形的数量等于 ,
这里把除以二拆成两个地方还可以防止爆int,或者爆long long
而子正方形的数量等于矩行中最大正方形的子正方形数量等于
换成代码就是:
for(int i=m,j=n;i>=1&&j>=1;i--,j--)zheng+=i*j;
得到子正方形的个数之后,就可以直接使用总的子矩形的数量,减去子正方形的数量得到子长方形的数量得到答案了.
int main() {
long long n, m,c=0,z=0;
cin >> n >> m;
for (int i = n, j = m; i >= 1 && j >= 1; i--, j--)z += i * j;
c = ((m + 1) * m/2) * ((n + 1) * n /2) - z;
cout << z << " " << c << endl;
return 0;
}
本文来自博客园,作者:zhywyt,转载请注明原文链接:https://www.cnblogs.com/zhywyt/p/17086390.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理