UPC训练赛二十/20240217
A:无穷力量
题目描述
2022年重庆突发山火让世界看到了中国一个又一个的感人事迹:战士们第一时间奔赴火场,志愿者们自发组成团队,为救火提供一切的可能的服务,人们自发输送物资,有的志愿者甚至几天几夜没有睡觉。每个人献出一点力,造就了集体的无穷力量。山火被灭后,记者想统计共有多少人志愿者参加了灭火行动,他在山脚共找到了N个不同的志愿者进行调查。这N个被调查的志愿者回答如下:
第1位志愿者回答:和我一起行动的,除了我之外,还有A[1]个人。
第2位志愿者回答:和我一起行动的,除了我之外,还有A[2]个人。
第3位志愿者回答:和我一起行动的,除了我之外,还有A[3]个人。
。。。。。。
第N位志愿者回答:和我一起行动的,除了我之外,还有A[N]个人。
假设这N位志愿者都没有记错,那么至少有多少志愿者参与了灭火?
输入
分两行输入。
第一行,一个整数N。
第二行,N个整数,空格分开,第i个整数表示A[i]。
输出
一个整数,表示至少有多少个志愿者。
样例输入 Copy
【样例1】 4 1 2 1 2 【样例2】 9 2 2 44 2 2 2 444 2 2
样例输出 Copy
【样例1】 5 【样例2】 499
提示
对于100%的数据,3<N<=50,0<=A[i]<=1000000。
#include <bits/stdc++.h>
using namespace std;
map<int, int>mp;
int main()
{int n; cin >> n;for (int i = 1; i <= n; i++){int num;scanf("%d", &num); mp[++num]++;}int sum = 0;for (auto it : mp){sum += it.first;while (mp[it.first] > it.first){mp[it.first] -= it.first;sum += it.first;}}if (sum >= n) printf("%d\n", sum); else printf("%d\n", n); return 0;
}
B:幸运位置
题目描述
刀越磨越快,脑子越用灵。不管什么事情,小宏总是喜欢多思考。今天他和小伙伴们玩一个游戏:n个人围成一圈,从第1个位置开始报数,每隔m个人报一次数,每次报数的人要表演节目,这样很有可能有人不用表演节目。例如有6个人,每隔3报数,报数的位置则是:1、5、3、1、5、3……,这样位置2、4、6的人就不用表演节目。小宏想考考你:在玩游戏前,根据n和m,迅速找出这些不用表演节目的位置。
输入
共一行,两个整数:n和m。1<=n<=10000, 1<=m<=1000。
输出
共一行,不用表演节目的位置,如果所有位置都要表演节目,则输出”NO”。
样例输入 Copy
【样例1】 6 3 【样例2】 5 3
样例输出 Copy
【样例1】 2 4 6 【样例2】 NO
/*一个大佬的方法*/ #include<bits/stdc++.h> using namespace std; typedef long long int ll; #define N 1000009 int arr[N]; int main() {int n, m, i = 1, ans = 0;scanf("%d%d", &n, &m);while (arr[i] == 0){arr[i] = 1;i += (m + 1);if (i != n) i %= n;}for (int i = 1; i <= n; i++){if (arr[i] == 1) ans++;else printf("%d ", i);}if (ans == n) puts("NO");return 0; }/*我的方法*/ #include <bits/stdc++.h> using namespace std; set<int>arr; int main() {int n, m;scanf("%d%d", &n, &m);int idx = 1, cntof1 = 0, cnt = 0;while (cntof1 < 2){cnt++;if (idx % n == 0) arr.insert(n);else arr.insert(idx % n);if (idx % n == 1) cntof1++;idx += m + 1;}if (arr.size() == n) printf("NO\n");elsefor (int i = 1; i <= n; i++){if (arr.find(i) == arr.end()) printf("%d ", i);}return 0; }
G:智力测试题
题目描述
牛牛同学智商为-1e9,但是他既不谦虚又不低调,很喜欢炫耀他的智商。
现在,牛牛就来测智商了,题目是这样。
已知一个n乘以n的矩阵,有一个小球一开始在(1,1)处,小球每秒都会向右走一格,如果到达最右边,小球就会掉落在下一行的第一格。
如果到达(n, n)则返回(1,1)。现在给定n和时间t,请你输出小球最后所在的行和列。
输入
一行两个正整数,n和t。
输出
两个整数代表小球最终的行和列。
样例输入 Copy
【样例 1 输入】 3 5 【样例 2 输入】 4 2 【样例 3 输入】 2 7
样例输出 Copy
【样例 1 输出】 2 3 【样例 2 输出】 1 3 【样例 3 输出】 2 2
提示
【数据范围】
对于 50% 数据保证:t ≤ n2 − 1 对于
80% 数据保证:t ≤ n2 对于
100% 数据保证:1 ≤ n ≤ 10,0 ≤ t ≤ 500
题目数据比较毒瘤,请考虑所有情况。
#include <stdio.h>
int main()
{int n, t;scanf("%d%d", &n, &t);if (!((t / n + 1) % n)) printf("%d ", n);else printf("%d ", (t / n + 1) % n);printf("%d\n", 1 + t % n);return 0;
}
H:采集灵石
题目描述
牛牛打开了一个有趣的游戏。在游戏中,灵石是一种非常重要的资源。每位玩家每天有且仅有一次采集的机会。
灵石会在许多浮岛上刷新,每个浮岛上灵石刷新数量可能不同。这些浮岛之间通过传送法阵相连,激活每个岛屿上的传送法阵花费的灵石数量也不同。玩家可以耗费mi 块灵石从任意一个其他浮岛或初始平台前往第i个浮岛。采集完毕后玩家
可以从任何浮岛直接退出地图。
现在,牛牛手中有着K块灵石,他想知道自己今天采集结束后最多能拥有多少块灵石。牛牛只能在周末玩一小时游戏,他希望你能编写一个程序帮他及时算出来。
输入
第一行两个正整数N, K分别表示浮岛的数量和牛牛手中初始的灵石数量。
接下来N行,每行两个正整数ki, mi,第i行的正整数ki表示第i个浮岛上今日刷新的灵石数量,mi表示传送到第i个浮岛所需的灵石数量。
输出
一个正整数,表示牛牛今天采集后最多能拥有的灵石数量。
样例输入 Copy
【样例 1 输入】 3 5 4 3 4 3 4 3 【样例 2 输入】 2 1 5 2 8 2 【样例 3 输入】 2 6 2 3 4 3
样例输出 Copy
【样例 1 输出】 8 【样例 2 输出】 1 【样例 3 输出】 7
提示
【数据范围】
对于 30% 的数据,满足 ki > mi
对于 100% 的数据,满足0 < N, K ≤ 105, 0 < ki, mi ≤ 109
保证答案在int范围内。
#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
priority_queue< pair<int,int>,vector<pair <int,int> >, greater< pair<int,int> > > q;
const int N = 1e5 + 10;
int k[N], m[N];
int main()
{int n,K;cin >> n >> K;while(n--){int x,y;scanf("%d%d",&x,&y);if(x > y) q.push(make_pair(y,x));}while(q.size()!=0){auto t = q.top();int y = t.first;int x = t.second;if(K >= y){K += x - y;q.pop();}else{break;}}cout << K << endl;return 0;
}
I:跳跃的排列
题目描述
小 B 很喜欢排列,这次他有一个长为n的排列 a1, a2, ⋯ , an。由于他音游玩多了,所以他想让排列也跳跃起来。他定义一次排列的跳跃为:
令 bi 表示最大的j (i ≤ j ≤ n)满足 aj ≥ ai,则bi= aj。最后对于所有i = 1 ∼ n,将 ai赋值为bi。
他想重复上述操作若干次。若操作k次和操作k + 1次序列保持不变,那么跳跃停止,跳跃次数为k。他想知道排列会跳跃多少次,请你来帮他计算一下。
输入
第一行, 输入一个数n。第二行输入n个数,第i个数表示ai。
输出
输出排列的跳跃次数。
样例输入 Copy
【样例 1 输入】 4 4 1 3 2 【样例 2 输入】 10 1 9 2 6 8 7 4 3 5 10 【样例 3 输入】 8 8 7 6 5 4 3 2 1
样例输出 Copy
【样例 1 输出】 1 【样例 2 输出】 1 【样例 3 输出】 0
提示
【样例 1 说明】 经过1轮操作后,序列变成4 2 3 2,经过2轮操作后,序列仍然是4 2 3 2,因此排 列跳跃了1次。
【样例 2 说明】 经过1轮操作后,所有数都变成了10,经过2轮操作后,序列仍然全都是10,因此 排列跳跃了1次。
【样例 3 说明】 经过1轮操作后,序列仍然是8 7 6 5 4 3 2 1,因此排列没有进行跳跃。
【数据范围】
对于奇数编号的数据,满足给定的排列形如n, n − 1, ⋯ ,1或1,2, ⋯ , n。
对于30%的数据,1 ≤ n ≤ 1000;
对于70%的数据,1 ≤ n ≤ 105;
对于100%的数据,1 ≤ n ≤ 106。
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int a[N], b[N];
int main()
{int n;cin >> n;for (int i = 1; i <= n; i++) scanf("%d", &a[i]);b[1] = a[1];for (int i = 2; i <= n; i++){if (b[i - 1] >= a[i]) b[i] = a[i];else b[i] = b[i - 1];}// b数列实时存储当前a数列中的最小值if (a[n] <= b[n]) puts("0"); // j要取最大值,看最右端。也就是,// 当a里面的数连最小值都不如的时候,就没法再替换了,故输出0else puts("1");// 反之return 0;
}
K:最接近
小明同学最近正在研究一些幂次的特性,比如 3^2 = 9 和 4^3 = 64。小花是小明的好朋友,她总是和小明一起学习,由于小花刚刚学习幂次,很多计算还不太熟练。她很好奇,对于任意给出的正整数 N,不超过 N 的最大的 2 的幂次方的数是多少?例如:如果 N 等于 10,那么不超过 10 的最大的 2 的幂次方的整数就是 8,如果 N 是 100,那么不超过 100 的最大的 2 的幂次方的整数就是 64。小花希望你能帮助她解决这个问题。如果你能解决这个问题,就能和小花成为好朋友,小花希望朋友越多越好。
输入只有一行一个正整数 N。
输出只有一行一个正整数,表示不超过 N 的最大的 2 的幂次方的正整数。
样例1 input 10 output 8
样例2 input 100 output 64
1<=N<=1e18;
#include <bits/stdc++.h>
using namespace std;
int main()
{long long n;cin >> n;long long L = 1, R = 63;while (L <= R){long long mid = (L + R) >> 1;long long ans = pow(2, mid);if (ans > n) R = mid;else if (ans < n){if (pow(2, mid + 1) > n){cout << ans;break;}L = mid + 1;}else{cout << ans;break;}}return 0;
}
相关文章:
UPC训练赛二十/20240217
A:无穷力量 题目描述 2022年重庆突发山火让世界看到了中国一个又一个的感人事迹:战士们第一时间奔赴火场,志愿者们自发组成团队,为救火提供一切的可能的服务,人们自发输送物资,有的志愿者甚至几天几夜没有睡觉。每个…...

【51单片机】LCD1602(江科大)
1.LCD1602介绍 LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符,还可以有8个自定义字符 显示容量:162个字符,每个字符为5*7点阵 2.引脚及应用电路 3.内部结构框图 屏幕: 字模库:类似于数码管的数…...
conda与pip的常用命令
conda的常用命令 1.查看conda版本 $ conda --version conda 23.11.02.查看conda的配置信息 $ conda infoactive environment : baseactive env location : /home/myPc/miniconda3shell level : 1user config file : /home/myPc/.condarcpopulated config files : conda vers…...
你知道什么是物联网MQTT么?
目录 你知道什么是物联网MQTT么?MQTT的基本概念MQTT的工作原理MQTT的应用场景MQTT的实例案例智能家居场景工业监控场景 你知道什么是物联网MQTT么? MQTT(Message Queuing Telemetry Transport)是一种轻量级的、基于发布/订阅模式…...
P8 pair vector
pair是一个模板类,用于表示一对值的组合,用<utility>中 pair模板有两个模板参数,t1 t2,分别表示第一个值和第二个值类型 pair类有两个成员变量,frist和 cond,分别表示第一个值与第二个值 还有一些成员函数和…...

奇异值分解(SVD)的应用——图像压缩
SVD方法是模型降阶的一类重要方法,本征正交分解(POD)和平衡截断(BT)都属于SVD类方法。 要想深入了解模型降阶技术,我们可以先从SVD的应用入手,做一个直观的了解。 1. SVD的定义和分类 我们想寻找…...
RTDETR改进系列指南
基于Ultralytics的RT-DETR改进项目.(89.9) 为了感谢各位对RTDETR项目的支持,本项目的赠品是yolov5-PAGCP通道剪枝算法.具体使用教程 自带的一些文件说明 train.py 训练模型的脚本main_profile.py 输出模型和模型每一层的参数,计算量的脚本(rtdetr-l和rtdetr-x因为thop库的问…...
类和结构体的区别
类(class)和结构体(struct)是面向对象编程(Object-Oriented Programming,OOP)中常见的两种数据类型,它们在不同的编程语言中有一些共同之处,但也存在一些区别。以下是它们…...
利用Excel模拟投币试验
文章目录 试验前对Excel要进行的设置试验步骤计算正面频率结果图试验前对Excel要进行的设置 进入Excel依次点击如下选项,最后将分析工具库勾选 #mermaid-svg-bIvrxZGI9buCMW6U {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#m…...

WebService接口测试
WebService的理解 WebService就是Web服务的意思,对应的应用层协议为SOAP(相当于HTTP协议),可理解为远程调用技术。 特点: 客户端发送的请求主体内容(请求报文)的格式为XML格式 接口返回的响…...

语音唤醒——
文章目录 配置主代码 参考文档:https://picovoice.ai/docs/quick-start/porcupine-python/ 配置 pip install pvporcupine主代码 ACCESS_KEY:需要将该参数填入即可 # # Copyright 2018-2023 Picovoice Inc. # # You may not use this file except in …...

typeScript 类型推论
什么是类型推论? 类型推论是 TypeScript 中的一个特性,它允许开发人员不必显式地指定变量的类型。相反,开发人员可以根据变量的使用情况让 TypeScript 编译器自动推断出类型。例如,如果开发人员将一个字符串赋值给一个变量&#…...
JavaScript 设计模式之代理模式
代理模式 其实这种模式在现在很多地方也都有使用到,如 Vue3 中的数据相应原理就是使用的 es6 中的 Proxy 代理及 Reflect 反射的方式来处理数据响应式 我们日常在使用数据请求时,也会用到一些代理的方式,比如在请求不同的域名,端…...
JavaScript 对象判断
如何判断一个对象是否是Set、Map、Array、Object 参考链接: https://blog.csdn.net/yunchong_zhao/article/details/115915624 let set new Set() let map new Map() let arr [] let obj {}console.log(Object.prototype.toString.call(obj)); // [object Obje…...

Android下SF合成流程重学习之onMessageInvalidate
Android下SF合成流程重学习之onMessageInvalidate 引言 虽然看了很多关于Android Graphics图形栈的文章和博客,但是都没有形成自己的知识点。每次学习了,仅仅是学习了而已,没有形成自己的知识体系,这次趁着有时间,这次…...

基于SpringBoot+WebSocket+Spring Task的前后端分离外卖项目-订单管理(十七)
订单管理 1. Spring Task1.1 介绍1.2 cron表达式1.3 入门案例1.3.1 Spring Task使用步骤1.3.2 代码开发1.3.3 功能测试 2.订单状态定时处理2.1 需求分析2.2 代码开发2.3 功能测试 3. WebSocket3.1 介绍3.2 入门案例3.2.1 案例分析3.2.2 代码开发3.2.3 功能测试 4. 来单提醒4.1 …...

【Java多线程进阶】JUC常见类以及CAS机制
1. Callable的用法 之前已经接触过了Runnable接口,即我们可以使用实现Runnable接口的方式创建一个线程,而Callable也是一个interface,我们也可以用Callable来创建一个线程。 Callable是一个带有泛型的interface实现Callable接口必须重写cal…...

Python算法100例-1.7 最佳存款方案
完整源代码项目地址,关注博主私信’源代码’后可获取 1.问题描述2.问题分析3.算法设计4.完整的程序 1.问题描述 假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱,他打算在今后5年中的每年年底取出1000元,到第5年时刚…...
ADO世界之FIRST
目录 一、ADO 简介 二、ADO 数据库连接 1.创建一个 DSN-less 数据库连接 2.创建一个 ODBC 数据库连接 3.到 MS Access 数据库的 ODBC 连接 4.ADO 连接对象(ADO Connection Object) 三、ADO Recordset(记录集) 1.创建一个 …...

【COMP337 LEC 5-6】
LEC 5 Perceptron : Binary Classification Algorithm 8 感应器是 单个神经元的模型 突触连接的强度取决于接受外部刺激的反应 X input W weights a x1*w1x2*w2....... > / < threshold Bias MaxIter is a hyperparameter 超参数 which has to be chosen…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...