当前位置: 首页 > news >正文

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,不超过 的最大的 2 的幂次方的数是多少?例如:如果 等于 10,那么不超过 10 的最大的 2 的幂次方的整数就是 8,如果 是 100,那么不超过 100 的最大的 2 的幂次方的整数就是 64。小花希望你能帮助她解决这个问题。如果你能解决这个问题,就能和小花成为好朋友,小花希望朋友越多越好。

输入只有一行一个正整数 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年重庆突发山火让世界看到了中国一个又一个的感人事迹&#xff1a;战士们第一时间奔赴火场&#xff0c;志愿者们自发组成团队&#xff0c;为救火提供一切的可能的服务&#xff0c;人们自发输送物资&#xff0c;有的志愿者甚至几天几夜没有睡觉。每个…...

【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么&#xff1f;MQTT的基本概念MQTT的工作原理MQTT的应用场景MQTT的实例案例智能家居场景工业监控场景 你知道什么是物联网MQTT么&#xff1f; MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级的、基于发布/订阅模式…...

P8 pair vector

pair是一个模板类&#xff0c;用于表示一对值的组合&#xff0c;用<utility>中 pair模板有两个模板参数&#xff0c;t1 t2&#xff0c;分别表示第一个值和第二个值类型 pair类有两个成员变量&#xff0c;frist和 cond,分别表示第一个值与第二个值 还有一些成员函数和…...

奇异值分解(SVD)的应用——图像压缩

SVD方法是模型降阶的一类重要方法&#xff0c;本征正交分解&#xff08;POD&#xff09;和平衡截断&#xff08;BT&#xff09;都属于SVD类方法。 要想深入了解模型降阶技术&#xff0c;我们可以先从SVD的应用入手&#xff0c;做一个直观的了解。 1. SVD的定义和分类 我们想寻找…...

RTDETR改进系列指南

基于Ultralytics的RT-DETR改进项目.(89.9) 为了感谢各位对RTDETR项目的支持,本项目的赠品是yolov5-PAGCP通道剪枝算法.具体使用教程 自带的一些文件说明 train.py 训练模型的脚本main_profile.py 输出模型和模型每一层的参数,计算量的脚本(rtdetr-l和rtdetr-x因为thop库的问…...

类和结构体的区别

类&#xff08;class&#xff09;和结构体&#xff08;struct&#xff09;是面向对象编程&#xff08;Object-Oriented Programming&#xff0c;OOP&#xff09;中常见的两种数据类型&#xff0c;它们在不同的编程语言中有一些共同之处&#xff0c;但也存在一些区别。以下是它们…...

利用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服务的意思&#xff0c;对应的应用层协议为SOAP&#xff08;相当于HTTP协议&#xff09;&#xff0c;可理解为远程调用技术。 特点&#xff1a; 客户端发送的请求主体内容&#xff08;请求报文&#xff09;的格式为XML格式 接口返回的响…...

语音唤醒——

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

typeScript 类型推论

什么是类型推论&#xff1f; 类型推论是 TypeScript 中的一个特性&#xff0c;它允许开发人员不必显式地指定变量的类型。相反&#xff0c;开发人员可以根据变量的使用情况让 TypeScript 编译器自动推断出类型。例如&#xff0c;如果开发人员将一个字符串赋值给一个变量&#…...

JavaScript 设计模式之代理模式

代理模式 其实这种模式在现在很多地方也都有使用到&#xff0c;如 Vue3 中的数据相应原理就是使用的 es6 中的 Proxy 代理及 Reflect 反射的方式来处理数据响应式 我们日常在使用数据请求时&#xff0c;也会用到一些代理的方式&#xff0c;比如在请求不同的域名&#xff0c;端…...

JavaScript 对象判断

如何判断一个对象是否是Set、Map、Array、Object 参考链接&#xff1a; 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图形栈的文章和博客&#xff0c;但是都没有形成自己的知识点。每次学习了&#xff0c;仅仅是学习了而已&#xff0c;没有形成自己的知识体系&#xff0c;这次趁着有时间&#xff0c;这次…...

基于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接口&#xff0c;即我们可以使用实现Runnable接口的方式创建一个线程&#xff0c;而Callable也是一个interface&#xff0c;我们也可以用Callable来创建一个线程。 Callable是一个带有泛型的interface实现Callable接口必须重写cal…...

Python算法100例-1.7 最佳存款方案

完整源代码项目地址&#xff0c;关注博主私信’源代码’后可获取 1.问题描述2.问题分析3.算法设计4.完整的程序 1&#xff0e;问题描述 假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱&#xff0c;他打算在今后5年中的每年年底取出1000元&#xff0c;到第5年时刚…...

ADO世界之FIRST

目录 一、ADO 简介 二、ADO 数据库连接 1.创建一个 DSN-less 数据库连接 2.创建一个 ODBC 数据库连接 3.到 MS Access 数据库的 ODBC 连接 4.ADO 连接对象&#xff08;ADO Connection Object&#xff09; 三、ADO Recordset&#xff08;记录集&#xff09; 1.创建一个 …...

【COMP337 LEC 5-6】

LEC 5 Perceptron &#xff1a; 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邮件发奖系统实战

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

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

使用Spring AI和MCP协议构建图片搜索服务

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

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...