PAT (Advanced Level) Practice——1008,1009

news2024/9/21 20:47:54

1008:

难度:简单

题意:

我们城市最高的建筑只有一部电梯。N个数字表示电梯将按指定顺序停在哪些楼层。电梯上一层需要 6 秒,下一层需要 4 秒。电梯将在每个站点停留 5 秒。对于给定的N个数字,您将计算完成这些请求所花费的总时间。电梯开始时位于 0 楼,满足请求后不必返回一楼。

思路:

每次更新现在所在的楼层以及计算本层和下一层的差距,根据正负乘以对应需要花费的时间即可(注意负数要乘以绝对值

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int n; cin >> n;
    vector<int> a(n);
    for(int i = 0; i < n; i++) cin >> a[i];
    int now = 0,ans = 0;
    for(int i = 0; i < n; i++){
        int tmp = a[i] - now;
        // cout <<"tmp:" <<tmp << '\n';
        if(tmp > 0) ans += 6 * tmp;
        else if(tmp < 0) ans += 4 * abs(tmp);
        now = a[i];
    }
    cout << (ans + n * 5) << '\n';
    return 0;
}

 1009:

题意:

和之前1002相似PAT (Advanced Level) Practice——1001,1002-CSDN博客 ,计算多项式A x B的值。

思路:

首先双层循环计算对应的e指数和系数,重要的是合并同类项这一步,不太爱写循环,所以可以直接用map,完美去重。

还有系数为0的不能加入到map中,不注意这一点,测试点0无法通过

这里由于系数是double类型,具有精度差,所以我们可以利用一个数代表0(1e-9或者1e-6),总之很小就行,如果系数小于这个很小的数,就把其视为0,就需要使用erase消除该项

    int e = a[i].exp + b[j].exp;
    double c = a[i].coe * b[j].coe;
    if (fabs(c) > 1e-9) {  // 排除系数为0的情况
        mp[e] += c;  // 如果系数为0,则不会添加到map中
    if (fabs(mp[e]) < 1e-9) {
            mp.erase(e);  // 如果累加后系数接近0,则从map中删除
        }
    }

其次就是输出时,map是自动降序排序的,并且map不可以用sort函数,所以在申明map的时候我们就可以设置其排序函数为降序。

map<int, double, greater<int>> mp; //降序自动排列
#include <bits/stdc++.h>
using namespace std;

typedef struct {
    int exp;
    double coe;
} X;

map<int, double, greater<int>> mp; //降序自动排列

int main() {
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);

    int na;
    cin >> na;
    vector<X> a(na);
    for (int i = 0; i < na; i++) 
        cin >> a[i].exp >> a[i].coe;

    int nb;
    cin >> nb;
    vector<X> b(nb);
    for (int i = 0; i < nb; i++) 
        cin >> b[i].exp >> b[i].coe;

    for (int i = 0; i < na; i++) {
        for (int j = 0; j < nb; j++) {
            int e = a[i].exp + b[j].exp;
            double c = a[i].coe * b[j].coe;
             if (fabs(c) > 1e-9) {  // 排除系数为0的情况
                mp[e] += c;  // 如果系数为0,则不会添加到map中
                if (fabs(mp[e]) < 1e-9) {
                    mp.erase(e);  // 如果累加后系数接近0,则从map中删除
                }
            }
        }
    }

    cout << mp.size();
    for (auto i : mp) {
        printf(" %d %.1f", i.first, i.second);
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2100487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前后端分离项目遇到的跨域问题解决方案(后端为主)

文章目录 什么是跨域问题&#xff1f;第一种方式 ⇒ 注解解决方案&#xff1a;第二种方式 ⇒ 使用 CorsFilter 方法解决&#xff1a;第三种方式 ⇒ 实现 WebMvcConfigure 接口&#xff0c;添加映射&#xff08;个人推荐&#xff09; 什么是跨域问题&#xff1f; 先说问题&#…

【软件流程】项目开发管理制度(Doc文件)

项目开发管理总体流程 一、总则 二、阶段成果 三、岗位设置 四、项目立项 五、项目计划与监控 六、需求分析 七、总体设计 八、详细设计 九、项目实现 十、项目测试 十一、用户培训 十二、系统上线 十三、系统验收 十四、产品维护 十五、源码和文档 十六、质量检…

Gitee镜像关联GitHub仓库

申请 GitHub 私人令牌 GitHub 私人令牌用于授予 Gitee 读写 Github 仓库的权限。 1&#xff09;登录GitHub&#xff0c;通过 个人头像 > Settings > 下拉左侧菜单栏进入 Developer settings。 2&#xff09;Personal access tokens > Tokens(classic) > Generate …

[数据集][目标检测]街道乱堆垃圾检测数据集VOC+YOLO格式94张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;94 标注数量(xml文件个数)&#xff1a;94 标注数量(txt文件个数)&#xff1a;94 标注类别数…

Spring Security 原理、源码解析及进阶

文章目录 参考文献 1、信息安全基础1. CIA 三要素2. Authentication Vs. Authorization3. RBAC模型 2、Spring Security1. Spring Security 简介2. Spring Security 架构核心2.1 FilterChain (Servlet)2.2 [DelegatingFilterProxy](https://docs.spring.io/spring-security/ref…

基于DPU与SmartNIC的K8s Service解决方案

1. 方案背景 1.1. Kubernetes Service介绍 Kubernetes Service是Kubernetes中的一个核心概念&#xff0c;它定义了一种抽象&#xff0c;用于表示一组提供相同功能的Pods&#xff08;容器组&#xff09;的逻辑集合&#xff0c;并提供了一种方式让这些Pods能够被系统内的其他组…

5、Django Admin后台移除“删除所选”操作

默认情况下&#xff0c;Django Admin后台的listview模型列表页&#xff0c;会有一个Delete Selected删除所选操作。假设你需要再从Hero管理模型中移除该删除操作。 ModelAdmin.get_actions方法可以返回所有的操作方法。通过覆盖此方法&#xff0c;移除其中delete_selected方法…

uni-app 获取当前位置的经纬度以及地址信息

文章目录 uni.getLocation(objc)获取经纬度和地址调试结果问题 uni-app 获取当前位置的经纬度以及地址信息 uni.getLocation(objc) uni-app官方文档定位API: uni.getLocation(OBJECT) uni.getLocation({type: wgs84,success: function (res) {console.log(当前位置的经度&…

Easy-Paas 功能演示

1.登录 http://192.168.11.10:8100/web 账号&#xff1a;admin 密码&#xff1a;admin 2.主页

阿里巴巴商品搜索API返回值中的图片与详情链接

在使用阿里巴巴&#xff08;Alibaba&#xff09;的商品搜索API时&#xff0c;通常返回的JSON或其他格式的数据中会包含商品的相关信息&#xff0c;如标题、价格、图片链接、详情页链接等。这些链接&#xff08;特别是图片和详情页的链接&#xff09;通常设计为直接可用的URL&am…

buildroot构建根文件系统

目录 嵌入式系统1. Bootloader&#xff08;引导程序&#xff0c;如U-Boot&#xff09;2. Linux内核3. 根文件系统 根文件系统使用buildroot编译文件系统Buildroot目录简介选择配置文件Buildroot其他分析 嵌入式系统 嵌入式系统的三大部分&#xff1a;bootloader&#xff08;如…

Ceph RBD使用

CephRBD使用 一、RBD架构说明二、RBD相关操作1、创建存储池2、创建img镜像2.1 创建镜像2.1.2 查看镜像详细信息2.1.3 镜像其他特性2.1.4 镜像特性的启用和禁用 3、配置客户端使用RBD3.1 客户端配置yum源3.2 客户端使用admin用户挂载并使用RBD3.2.1 同步admin账号认证文件3.2.2 …

安数云助力某省移动部署全省云安全资源池

随着云计算技术的拓展&#xff0c;安全运维的兴起以及5G新技术的试点应用&#xff0c;传统烟囱式产品堆砌的安全解决方案已难以满足各新兴业务的安全保障需求。用户大部分业务逐步迁移到了云上&#xff0c;所有资源都以虚拟化的形态存在&#xff0c;以达到集中式的管理。 云安全…

MIT6.S081最详解析与归纳——lab11:network driver

Lab11主题&#xff1a;network driver &#xff08;一&#xff09;xv6网络协议栈&#xff08;二&#xff09;networking&#xff08;1&#xff09;e1000_transmit&#xff08;2&#xff09;e1000_recv &#xff08;三&#xff09;完结感想 &#xff08;一&#xff09;xv6网络协…

股指期货交割手续费怎么算?

股指期货交割手续费是投资者在股指期货合约到期进行交割时必须支付的费用&#xff0c;主要用于覆盖交易所和期货公司的运营成本。其计算方式与开仓、平仓手续费相似&#xff0c;但标准有所不同。#股指期货# 要熟悉股指期货的保证金和手续费计算&#xff0c;可以遵循以下公式&a…

浏览器百科:网页存储篇-Cookie应用实例(三)

1.引言 在前面的章节中&#xff0c;我们详细介绍了 Cookie 的基本概念、属性以及如何在 Chrome 浏览器中管理和调试 Cookie。理解这些理论知识之后&#xff0c;下一步是将其应用于实际开发中。在本篇文章中&#xff0c;我们将通过具体的代码示例&#xff0c;演示如何在网页中设…

并发集合:ConcurrentHashMap解析

1、ConcurrentHashMap 介绍 1.1、ConcurrentHashMap 概述 ConcurrentHashMap 是线程安全的HashMap&#xff0c;但最早的线程安全的HashMap 是 HashTable &#xff0c;HashTable 现在已经弃用&#xff0c;因为它是使用synchronized 来保证线程安全&#xff0c;性能比较低&#…

无人机地理测绘技术详解

无人机地理测绘技术&#xff0c;作为现代测绘领域的一项重要革新&#xff0c;融合了无人机技术、遥感技术、地理信息系统&#xff08;GIS&#xff09;及全球定位系统&#xff08;GPS&#xff09;等多学科技术。该技术通过无人机搭载的高精度传感器&#xff0c;如相机、激光雷达…

Midjourney 图生图,真人二次元保持一致性,场景多元可选择

Midjourney 图生图&#xff0c;真人二次元保持一致性&#xff0c;场景多元可选择 Midjourney 拥有强大的图生图的功能&#xff0c;下面我们就来看一下&#xff0c;如何在我们的AceDataCloud网站上实现将照片切换成任意的二次元场景&#xff0c;同时保持人物的一致性。 注册链…

Azure Data Factory 多选选项集不受支持

在用ADF往外部推数据时&#xff0c;会碰到CRM的一种数据类型&#xff0c;多选下拉框&#xff0c;如下图中的 如果我们把多选字段输入源字段中&#xff0c;会得到如下的提示 查询官方文档&#xff0c;则有如下的说法 所以把值往外推就需要变通下&#xff0c;例如使用一个文本字段…