《算法竞赛·快冲300题》每日一题:“窗户”
发布人:shili8
发布时间:2024-11-19 14:31
阅读次数:0
**《算法竞赛·快冲300题》每日一题**
**题目名称:** "窗户"
**难度等级:** 中等**问题描述:**
有一个长方形的房间,房间内有多个窗户,每个窗户都有一个高度和宽度。现在,我们需要计算出所有窗户的面积之和。
**输入格式:**
* int n (表示窗户数量)
* int w[n] (表示每个窗户的宽度)
* int h[n] (表示每个窗户的高度)
**输出格式:**
* long long ans (表示所有窗户面积之和)
**示例输入:**
5342167891011
**示例输出:**
145
**代码实现:**
cpp#include <iostream> using namespace std; int main() { int n; cin >> n; long long ans =0; // 使用long long类型来避免溢出 for (int i =0; i < n; i++) { int w, h; cin >> w >> h; // 计算每个窗户的面积并添加到总和中 ans += static_cast<long long>(w) * h; } cout << ans << endl; return0; }
**代码注释:**
* 我们使用了`long long`类型来存储总面积,以避免溢出。
* 在循环中,我们分别读入窗户的宽度和高度,并计算每个窗户的面积。
* 每个窗户的面积被添加到总和中,最后输出结果。
**时间复杂度:**
* 时间复杂度为 O(n),其中 n 是窗户数量。我们需要对所有窗户进行迭代来计算总面积。
**空间复杂度:**
* 空间复杂度为 O(1),因为我们只使用了常数个变量来存储窗户的宽度和高度,以及总面积。
以上就是本题的解决方案。