C++2024寒假J312实战班2.6

news2025/1/18 2:12:08

错题列表:

        #1Playlist

                #2分数线划定

                        #3Made Up

                                #4图书管理员

#1Playlist

 我们来介绍滑动窗口的写法:

1、使用一个滑动窗口k[l,r)在歌曲列表中移动。
2、同时利用一个unordered_set S来检测窗口中的歌曲是否有重复。如果窗口右端的歌曲在窗口内没有重复,那么就将其加入到窗口中并继续尝试扩大窗口;
3、否则,就将窗口左端的歌曲移出窗口,并尝试缩小窗口。
4、在这个过程中,不断更新并最终得到无重复歌曲序列的最大长度。

我们来看一下标程:

using namespace std;
int main() {
  ios::sync_with_stdio(0), cin.tie(0);
  int n;
  cin >> n;
  vector<int> A(n);
  for (int &a : A) cin >> a;
  set<int> S;
  int ans = 0;
  for (int l = 0, r = 0; l < n; S.erase(A[l++])) {
    // r = maxᵣ{A[l,r)无重复元素}
    while (r < n && !S.count(A[r])) S.insert(A[r++]);
    ans = max(ans, r - l); // 更新最大的无重复歌曲序列长度
  }
  printf("%d\n", ans);
  return 0;
}

#2分数线划定

我们先来看一下题目:

直接来看一下我的代码:

#include <bits/stdc++.h>
using namespace std;
struct person{
    int num, pen;// 编号, 笔试成绩
    bool operator<(const person & one)const { // 重载运算符
        if(pen != one.pen) return one.pen < pen;
        else return one.num > num;
    }
};
int main() {
    ios::sync_with_stdio(false),cin.tie(0);
    int n, m;
    cin >> n >> m;
    vector<person> people(n);
    for(int i = 0; i < n; i++) cin >> people[i].num >> people[i].pen;
    sort(people.begin(),people.end());
    m = m * 3 / 2;
    int numline = people[m - 1].pen;
    cout << numline <<' ';
    int peo = 0;
    for(int i = 0;i < n; i++)
        if(people[i].pen < numline) break;
        else peo++;
    cout << peo << '\n';
    for(int i = 0; i < peo; i++) cout << people[i].num << ' ' <<people[i].pen << '\n';
    return 0;
}

很简单。

#3Made Up

这个只能用线性遍历,用一个新的cnt数组:把方案数存起来。

因为

保证输入都小于N,不然查不到吗。

【分析】
1.所有数字范围都在[1,N]内,可以新建一个数组Cnt,其中Cnt[b]代表Bc​=b出现的次数,其中c∈C。
2.遍历数组A,将A中每个元素a在Cnt中对应的值Cnt[a]相加,得到最终的结果。

#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(false), cin.tie(0);
  int N;
  cin >> N;
  vector<int> A(N), B(N), C(N), Cnt(N);
  // 减1是因为在C++中,数组索引从0开始,而题目中的数组索引从1开始
  for (int& a : A) cin >> a, a -= 1;
  for (int& b : B) cin >> b, b -= 1;
  // 计算每个元素b(B[c])在数组C中出现的次数,结果存储在Cnt数组中
  for (int& c : C) cin >> c, c -= 1, Cnt[B[c]] += 1;
  long long ans = 0;
  // 计算A数组中每个元素a在Cnt数组中的对应值的和,即答案
  for (int a : A) ans += Cnt[a];  
  printf("%lld\n", ans);
  return 0;
}

 #4图书管理员

 

#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(false), cin.tie(0);
  int n, q;
  cin >> n >> q;    // 书的数量和读者的数量
  map<int, int> S;  // 后缀: 包含此后缀的最小编码
  for (int i = 0, a; i < n; i++) {
    cin >> a;  // 图书的编码后缀: 2123->3, 23, 123, 2123
    for (int e = 10;; e *= 10) {
      int f = a % e;
      if (!S.count(f)) S[f] = a;
      S[f] = min(S[f], a);
      if (f == a) break;
    }
  }
  for (int i = 0, l, a; i < q; i++) {
    cin >> l >> a;
    printf("%d\n", S.count(a) ? S[a] : -1);
  }
  return 0;
}

 map就是映射,int映射到int,就是代表的意思。

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

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

相关文章

LLM应用开发与落地:流式响应

一、背景 最近智能客服产品给到一个游戏客户那边&#xff0c;客户那边的客服负责人体验后认为我们产品回答的准确率是还是比较高的。同时&#xff0c;他反馈了几个需要改进的地方&#xff0c;其中一个就是机器人回复慢。机器人回复慢有很多原因&#xff0c;也有优化方式&#…

2019 年全国职业院校技能大赛高职组 “信息安全管理与评估”赛项任务书(笔记详解)

1. 网络拓扑图 2. IP 地址规划表 3. 设备初始化信息 阶段一 任务 1:网络平台搭建 1、根据网络拓扑图所示,按照 IP 地址参数表,对 DCFW 的名称、各接口IP 地址进行配置。 2、根据网络拓扑图所示,按照 IP 地址参数表,对 DCRS 的名称进行配置,创建 VLAN 并将相应接口划入 …

C#,雷卡曼数(Recamán Number)的算法与源代码

1 雷卡曼数&#xff08;Recamn Number&#xff09; 雷卡曼数&#xff08;Recamn Number&#xff09;&#xff0c;即Recaman序列被定义如下&#xff1a; (1) a[0]0; (2) 如果a[m-1]-m>0并且这个值在序列中不存在&#xff0c;则a[m]a[m-1]-m; (3) 否则a[m]a[m-1]m; 雷卡曼序…

[UI5 常用控件] 08.Wizard,NavContainer

文章目录 前言1. Wizard1.1 基本结构1.2 属性1.2.1 Wizard&#xff1a;complete1.2.2 Wizard&#xff1a;finishButtonText1.2.3 Wizard&#xff1a;currentStep1.2.4 Wizard&#xff1a;backgroundDesign1.2.5 Wizard&#xff1a;enableBranching1.2.6 WizardStep&#xff1a;…

【Linux】vim的基本操作与配置(下)

Hello everybody!今天我们继续讲解vim的操作与配置&#xff0c;希望大家在看过这篇文章与上篇文章后都能够轻松上手vim! 1.补充 在上一篇文章中我们说过了&#xff0c;在底行模式下set nu可以显示行号。今天补充一条&#xff1a;set nonu可以取消行号。这两条命令大家看看就可…

LeetCode-第28题-找出字符串中第一个匹配项的下标

1.题目描述 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 2.样例描述 3.思路描述 可以让字符串 …

SpringBoot源码解读与原理分析(二十)IOC容器的刷新(一)

文章目录 7 IOC容器的刷新7.1 初始化前的预处理7.1.1 初始化属性配置7.1.2 初始化早期事件的集合 7.2 初始化BeanFactory7.2.1 注解驱动的refreshBeanFactory7.2.2 XML驱动的refreshBeanFactory7.2.3 获取BeanFactory 7.3 BeanFactory的预处理配置7.3.1 ApplicationContextAwar…

自然语言学习nlp 六

https://www.bilibili.com/video/BV1UG411p7zv?p118 Delta Tuning&#xff0c;尤其是在自然语言处理&#xff08;NLP&#xff09;和机器学习领域中&#xff0c;通常指的是对预训练模型进行微调的一种策略。这种策略不是直接更新整个预训练模型的权重&#xff0c;而是仅针对模型…

vue3+vite+ts 配置commit强制码提交规范配置 commitlint

配置 git 提交时的 commit 信息&#xff0c;统一提交 git 提交规范 安装命令: npm install -g commitizen npm i cz-customizable npm i commitlint/config-conventional commitlint/cli -D 文件配置 根路径创建文件 commitlint.config.js module.exports {// 继承的规…

【开源】基于JAVA+Vue+SpringBoot的假日旅社管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统介绍2.2 QA 问答 三、系统展示四、核心代码4.1 查询民宿4.2 新增民宿评论4.3 查询民宿新闻4.4 新建民宿预订单4.5 查询我的民宿预订单 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的假日旅社…

STL之list容器的介绍与模拟实现+适配器

STL之list容器的介绍与模拟实现适配器 1. list的介绍2. list容器的使用2.1 list的定义2.2 list iterator的使用2.3 list capacity2.4 list element access2.5 list modifiers2.6 list的迭代器失效 3. list的模拟实现3.1 架构搭建3.2 迭代器3.2.1 正向迭代器3.2.2反向迭代器适配…

鸿蒙开发(六)布局概述

迄今为止&#xff0c;我还没有正式提到布局的概念。但其实我之前的demo里面&#xff0c;已经默认使用到了一种布局&#xff0c;那就是线性布局&#xff08;Row、Column&#xff09;&#xff0c;这也是DevEco创建项目默认页面里面默认采用的布局。那么本篇&#xff0c;带着大家一…

PyTorch 2.2 中文官方教程(十)

使用整体追踪分析的追踪差异 原文&#xff1a;pytorch.org/tutorials/beginner/hta_trace_diff_tutorial.html 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 作者: Anupam Bhatnagar 有时&#xff0c;用户需要识别由代码更改导致的 PyTorch 操作符和 CUDA 内核的变化…

python 动态数据 展示 ,数据是由51单片机发送过来的,温度传感器。

import tkinter as tk import randomimport seriallis[] for i in range(50):lis.append(i1) # 打开串行端口 ser serial.Serial(COM3, 9600) # 9600为波特率&#xff0c;根据实际情况进行调整# 初始化数据 lis [random.randint(15, 35) for _ in range(50)]def update_data…

【深度学习:Bard】我们 AI 之旅的重要下一步

【深度学习&#xff1a;AI 之旅】我们 AI 之旅的重要下一步 Bard简介将 AI 的优势带入我们的日常产品中帮助开发人员利用 AI 进行创新大胆负责 人工智能是我们今天正在研究的最深刻的技术。无论是帮助医生更早地发现疾病&#xff0c;还是使人们能够用自己的语言获取信息&#x…

2024年10 个好用的AI简历工具盘点推荐

在职场竞争激烈的今天&#xff0c;一份出色的简历就像是你的秘密武器&#xff0c;能帮你在众多候选人中脱颖而出&#xff0c;赢得面试宝座。随着 ChatGPT 引领的 AI 浪潮席卷而来&#xff0c;各式各样的 AI 简历工具如雨后春笋般涌现。面对这样的背景&#xff0c;神器集今天为大…

立面效果图为何要用云渲染100?渲染100邀请码1a12

建筑设计是一门艺术&#xff0c;而立面效果图是艺术的展现&#xff0c;它在设计中非常重要。 1、立面效果图的重要性 立面效果图能用来展示建筑物的风格、材质、色彩以及环境等因素&#xff0c;通过它&#xff0c;设计师可以检验项目质量&#xff0c;评估效果是否达到预期&…

【开源】基于JAVA+Vue+SpringBoot的课程案例资源库系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 管理员需求分析2.2 用户需求分析 三、系统设计3.1 业务流程设计3.1.1 管理员业务流程设计3.1.2 用户业务流程设计3.1.3 首页功能模块及业务流程分析3.1.4 案例资源中心功能模块及业务流程分析3.1.5 用户信息中心功能模块…

C语言笔试题之求出二叉树的最大深度(递归解决)

实例要求&#xff1a; 1、给定一个二叉树 root &#xff0c;返回其最大深度&#xff1b;2、二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数&#xff1b; 案例展示&#xff1a; 实例分析&#xff1a; 1、判断根节点是否为空&#xff1b;2、分别递归处理左…

Python环境下基于指数退化模型和LSTM自编码器的轴承剩余寿命预测

滚动轴承是机械设备中关键的零部件之一&#xff0c;其可靠性直接影响了设备的性能&#xff0c;所以对滚动轴承的剩余使用寿命(RUL)进行预测是十分必要的。目前&#xff0c;如何准确地对滚动轴承剩余使用寿命进行预测&#xff0c;仍是一个具有挑战的课题。对滚动轴承剩余寿命评估…