acwing周赛115第二题-奶牛照相

2024-02-17 00:12

本文主要是介绍acwing周赛115第二题-奶牛照相,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

5132. 奶牛照相 - AcWing题库 

约翰的农场有 n 头奶牛,编号 1∼n。

其中,第 i 头奶牛的宽度为 wi,高度为 hi,

有一天,它们聚餐后决定拍照留念。

关于拍照的描述如下:

  • 它们一共拍了 n 张照片,其中第 i 张照片由第 i 头奶牛给其它所有奶牛拍摄,即照片中包含除了奶牛 i 以外的所有奶牛。
  • 在拍照时,所有被拍摄的奶牛站成一排,拍出的照片呈矩形。
  • 每张照片的尺寸大小为 W×H,其中 W 为照片中所有奶牛的宽度之和,H 为照片中最高的奶牛的高度。

请你计算并输出每张照片的面积(W×H的值)。

输入格式

第一行包含整数 n,表示共有 n 头奶牛。

接下来 n 行,其中第 i 行包含两个整数 wi,hi,表示第 i 头奶牛的宽度和高度。

输出格式

输出共一行,n个整数,其中第 i 个整数表示第 i 张照片的面积。

注意,第 i 张照片包含除了奶牛 i 以外的所有奶牛。

数据范围

前 33 个测试点满足 2≤n≤3。
所有测试点满足 2≤n≤2×105,1≤wi≤10,1≤hi≤1000。

输入样例1:
3
1 10
5 5
10 1
输出样例1:
75 110 60
输入样例2:
3
2 1
1 2
2 1
输出样例2:
6 4 6

 

主要是处理出最大值 max1 和第二大值 max2,然后遍历,当前高度不等于 max1 的时候,就是宽度成 max1,高高度等于 max1 的时候,就是宽度成 max2

AC code:

#include<bits/stdc++.h>
using namespace std;
int h[200010];
int w[200010];
struct s {int w, h, x;
} arr[200010];
int n, ww = -1, hh = -1;int main() {cin >> n;for (int i = 1; i <= n; i++) {cin >> arr[i].w;cin >> arr[i].h;arr[i].x = i;w[i] = w[i - 1] + arr[i].w;h[i] = arr[i].h;}sort(h + 1, 1 + h + n);for (int i = 1; i <= n; i++) {w[i] = w[n] - arr[i].w;}for (int i = 1; i <= n; i++) {int a = arr[i].h;int b = w[i];if (arr[i].h != h[n]) {cout << w[i]*h[n] << " ";} else {cout << w[i]*h[n - 1] << " ";}}
}

 

这篇关于acwing周赛115第二题-奶牛照相的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/716116

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

LeetCode 第414场周赛个人题解

目录 Q1. 将日期转换为二进制表示 原题链接 思路分析 AC代码 Q2. 范围内整数的最大得分 原题链接 思路分析 AC代码 Q3. 到达数组末尾的最大得分 原题链接 思路分析 AC代码 Q4. 吃掉所有兵需要的最多移动次数 原题链接 思路分析 AC代码 Q1. 将日期转换为二进制表示 原题链接 Q1. 将日期转换为二进制表示 思路分析

【AcWing】851. 求最短路

spfa算法其实是对贝尔曼福特算法做一个优化。 贝尔曼福特算法会遍历所有边来更新,但是每一次迭代的话我不一定每条边都会更新,SPFA是对这个做优化。 如果说dist[b]在当前这次迭代想变小的话,那么一定是dist[a]变小了,只有a变小了,a的后继(b)才会变小。 用宽搜来做优化,用一个队列,队列里边存的就是所有变小了的结点(队列里存的是待更新的点)。 基本思路就是我更新过谁,我再拿

LeetCode --- 413周赛

题目列表 3274. 检查棋盘方格颜色是否相同 3275. 第 K 近障碍物查询 3276. 选择矩阵中单元格的最大得分 3277. 查询子数组最大异或值 一、检查棋盘方格颜色是否相同 题目给定两个字符串来表示两个方格的坐标,让我们判断这两个方格的颜色是否相同,这里我们要观察棋盘的颜色特征,我们就会发现奇数行的奇数列和偶数行的偶数列是黑色,其他都是白色,所以我们可以直接计算出每个方

【AcWing】852. spfa判断负环

#include<iostream>#include<algorithm>#include<cstring>#include<queue>using namespace std;const int N= 1e5+10;int n,m;int h[N],w[N],e[N],ne[N],idx;int dist[N],cnt[N];//cnt存最短路径的边数bool st[N];v

linux命令总结第二弹

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info

《数据结构(C语言版)第二版》第八章-排序(8.2-插入排序)

【8.2插入类、8.3交换类、8.4选择类、8.5归并类、8.6分配类 都属于内部排序。 】 8.2 插入排序 8.2.1 直接插人排序 【算法特点】 (1)稳定排序。 (2)算法简便,且容易实现。 (3)也适用于链式存储结构,只是在单链表上无需移动记录,只需修改相应的指针。 (4)更适合于初始记录基本有序(正序)的情况。 当初始记录无序,n较大时,此算法时间复杂度较高,不宜采用。 #in

Flink实例(115):自定义时间和窗口的操作符(十四)窗口操作符(四)触发器(Triggers) (二)

Flink 中窗口是很重要的一个功能,而窗口又经常配合触发器一起使用。 Flink 自带的触发器大概有: CountTrigger: 指定条数触发ContinuousEventTimeTrigger:指定事件时间触发ContinuousProcessingTimeTrigger:指定处理时间触发ProcessingTimeTrigger: 默认触发器,窗口结束触发EventTime