25.6.9学习总结

A. 误报(False Alarm)

A. 误报(False Alarm)https://codeforces.com/contest/2117/problem/A

时间限制:1 秒
内存限制:256 兆字节

Yousef 站在一个长走廊的入口处,面前有 n 扇门 ,排成一排,编号从 1 到 n。他需要按顺序依次通过这些门,最终到达出口(在第 n 扇门之后)。

每扇门都有一个状态:开启或关闭

  • 如果门是开启的 ,Yousef 可以用 1 秒穿过它;

  • 如果门是关闭的 ,Yousef 不能直接穿过

不过,Yousef 拥有一个特殊按钮 ,他最多可以使用一次。一旦按下按钮,所有关闭的门都会打开,并持续 x 秒

你的任务是判断:如果 Yousef 最多只能使用一次按钮,他是否能够顺利通过所有的门并到达出口?


输入格式:

输入的第一行是一个整数 t (1≤t≤1000 )—— 测试用例的数量。

每个测试用例包含两行:

  • 第一行是两个整数 n, x (1≤n,x≤10 )—— 门的数量和按钮持续的时间;

  • 第二行是 n 个整数 a1​,a2​,...,an​ ,其中 ai​∈{0,1} :

    • 0 表示门是开启的;

    • 1 表示门是关闭的。

保证每个测试用例中至少有一扇门是关闭的。


输出格式:

对每个测试用例,输出一行:

  • 如果 Yousef 能够顺利通过所有门,输出 YES

  • 否则输出 NO

你可以以任意大小写形式输出(例如 "YES", "Yes", "yEs" 都算正确)。


示例输入:

7
4 2
0 1 1 0
6 3
1 0 1 1 0 0
8 8
1 1 1 0 0 1 1 1
1 2
1
5 1
1 0 1 0 1
7 4
0 0 0 1 1 0 1
10 3
0 1 0 0 1 0 0 1 0 0

示例输出:

YES
NO
YES
YES
NO
YES
NO

示例解释:

第一个测试用例: 门的状态是 [0, 1, 1, 0],按钮持续时间为 2 秒。

  • 时间 0:第一扇门是开的,通过。

  • 时间 1:第二扇门是关的,按下按钮,门打开。

  • 时间 2:按钮效果还在,第三扇门也打开了。

  • 时间 3:按钮效果结束,但第四扇门是开的,可以通过。

所以 Yousef 成功通过所有门,输出 YES。

第二个测试用例: 虽然按钮能维持 3 秒,但连续有太多关闭的门,不足以全部通过。

第三个测试用例: 可以在开始前就按下按钮,这样所有门都保持开启直到时间 x 结束,足够 Yousef 走完全程。

#include<stdio.h>
int main() {int N;scanf("%d",&N);while(N--){int n,x;scanf("%d %d",&n,&x);int a[n];for(int i=0;i<n;i++){scanf("%d",&a[i]);}int tag=0,flag=1;for(int i=0;i<n;i++){if(a[i]==1){if(tag==0||x>0){tag=1;}else {flag=0;break;}}if(tag==1)x--;}if(flag==1)printf("Yes\n");else printf("No\n");}return 0;
}

B. 收缩操作

B. 收缩操作https://codeforces.com/contest/2117/problem/B

每个测试点的时间限制:2 秒
内存限制:256 兆字节

对于一个大小为 m 的数组 a,定义一次“收缩操作”如下:

  • 选择一个下标 i(满足 2 ≤ i ≤ m−1),使得 a[i] > a[i−1] 且 a[i] > a[i+1];

  • 将 a[i] 从数组中删除。

我们将一个排列 p 的 得分 定义为:可以在该排列上最多执行多少次这种收缩操作。

Yousef 给了你一个整数 n。请你构造一个长度为 n 的排列 p,使得它的得分尽可能大。如果有多个答案,你可以输出任意一个。

注:排列(permutation)是指由 n 个不同的整数构成的数组,这些整数是从 1 到 n 的所有数字的一个排列。例如 [2,3,1,5,4] 是一个排列,但 [1,2,2] 不是(因为有重复元素),[1,3,4] 也不是(n=3,但包含了一个 4)。

输入格式:

输入的第一行是一个整数 t(1 ≤ t ≤ 10³)—— 测试用例的数量。

接下来 t 行,每行一个整数 n(3 ≤ n ≤ 2×10⁵)—— 排列的长度。

保证所有测试用例的 n 总和不超过 2×10⁵。

输出格式:

对每个测试用例,输出一行表示满足条件的排列 p₁, p₂, ..., pₙ。如果有多个解,可以输出任意一个。

示例输入:

2
3
6

示例输出:

1 3 2
2 3 6 4 5 1

示例解释:

第一个测试用例:

我们选择排列 p = [1, 3, 2]。

  • 选择索引 2(值为 3),满足 a[i] > a[i−1] 且 a[i] > a[i+1],将其删除,数组变成 [1, 2]。

  • 此时不能再进行任何收缩操作。

这个排列的得分为 1,是最大可能值。另一个合法的答案是 [2, 3, 1]。

第二个测试用例:

我们选择排列 p = [2, 3, 6, 4, 5, 1]。

依次进行如下操作:

  • 删除索引 5(值为 5),数组变为 [2, 3, 6, 4, 1]

  • 删除索引 3(值为 6),数组变为 [2, 3, 4, 1]

  • 删除索引 3(值为 4),数组变为 [2, 3, 1]

  • 删除索引 2(值为 3),数组变为 [2, 1]

总共进行了 4 次收缩操作,这是最大可能值。

#include<stdio.h>
int main() {int N;scanf("%d",&N);while(N--){int a;scanf("%d",&a);int b[a];for(int i=0,j=2;j<=a;i++,j+=2){b[i]=j;}for(int i=a-1,j=1;j<=a;j+=2,i--){b[i]=j;}for(int i=0;i<a;i++){printf("%d ",b[i]);}printf("\n");}return 0;
}
C小红的数组查询(二)

题目描述

小红拿到了一个长度为 10^100 的数组,其构成如下:

  • 数组的第一个元素 a1​=1 ;

  • 对于 2≤i≤10^100 ,有:

    ai​=(ai−1​+d)modp

换句话说,这个数组是一个以 1 为起点、公差为 d 、模 p 的线性同余序列(即类似于伪随机数生成器的形式)。

现在你需要回答 q 次查询:每次给出一个区间 [l,r] ,求出该区间内所有数组元素中有多少种不同的值


输入格式

第一行输入两个整数 d,p (1≤d,p≤10^9 ),表示数组的公差和模数。

第二行输入一个整数 q (1≤q≤10^5 ),表示查询次数。

接下来 q 行,每行两个整数 li​,ri​ (1≤li​≤ri​≤10^18 ),表示每次查询的区间范围。


输出格式

对每个查询,输出一行一个整数,表示该区间内不同元素的数量。


示例输入

3 4
2
1 2
1 100000000000

示例输出

2
4

示例说明

第一次询问区间是 [1,2] :

  • a1​=1

  • a2​=(1+3)mod4=0

所以有两个不同的元素:01

第二次询问区间是 [1,10100] ,可以证明共有 4 种不同的元素。

#include<stdio.h>// 计算最大公约数
long long gcd(long long a, long long b) {if (b == 0) return a;return gcd(b, a % b);
}int main() {long long d, p;int q;scanf("%lld %lld %d", &d, &p, &q);// 计算循环节长度 Tlong long g = gcd(d, p);long long T = p / g;while (q--) {long long l, r;scanf("%lld %lld", &l, &r);long long len = r - l + 1;if (len >= T) {// 区间长度大于等于循环节,覆盖所有不同元素printf("%lld\n", T);} else {// 计算起始和结束位置在循环节中的偏移long long L0 = (l - 1) % T;long long R0 = (r - 1) % T;if (L0 <= R0) {// 区间在循环节内连续printf("%lld\n", R0 - L0 + 1);} else {// 区间跨越循环节边界printf("%lld\n", (T - L0) + (R0 + 1));}}}return 0;
}

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

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

相关文章

高并发内存池的轻量级模拟-细节处理与优化部分

一.当申请的内存大小大于256kb的处理方式 因为256kb对于我们当前的实现其实也就32页,我们的页缓存上限是128页.所以思路非常清晰明了:当申请内存大小大于32页同时小于等于128页时,我们按照一页的方式向上对齐后计算所需页数,然后向页缓存申请.而大于128页的请求我们直接向堆申请…

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…

【Go语言基础【19】】接口:灵活实现多态的核心机制

文章目录 零、概述一、接口基础1、接口的基本概念a. 接口定义b. 类型实现接口&#xff08;无需显式声明&#xff09;c. 接口变量&#xff08;体现了多态&#xff09; 2、实现接口的方式3、接口组合4、接口的底层结构 二、空接口与类型断言1. 空接口&#xff08;interface{}&…

Linux文件管理和输入输出重定向

文件管理 Bash执行命令 passwd passwd普通用户修改密码 passwd robinkoolroot用户管理账户密码 passwd -d robinkoolroot用户删除普通用户密码 file file /bin/filecat cat option 文件 cat -A /etc/hosts #-A选项等于-VETcat /etc/hosts /etc/fstab一次性查看多个文件…

检查项目中的依赖是否有更新——npm outdated

项目中输入 npm outdated如果出现package红色 则是需要更新的插件 更新最新的插件 使用latest下面的版本 Package Current Wanted Latest Location 包的名字 项目当前的版本 ... 需要更新到的版本然后将Latest的版本复制到pakcea…

vSphere环境ubuntu24.04虚拟机从BIOS切换为EFI模式启动

文章目录 一、操作背景二、操作步骤1.配置本地镜像仓库(可选)2.确认当前分区是gpt分区3.创建EFI分区4.安装和修改GRUB5.重启配置生效 三、验证EFI模式方法 1&#xff1a;检查 /sys/firmware/efi 目录方法 2&#xff1a;检查 dmesg 启动日志方法 3&#xff1a;使用 efibootmgr&a…

python打卡day48

import torch # 生成一个3x3的标准正态分布随机张量 random_tensor torch.randn(3, 3) print("随机张量:\n", random_tensor) 随机张量: tensor([[-0.9343, -0.3254, 0.6991], [-1.7157, 1.7171, -0.4322], [ 0.6004, -1.1050, -0.2178]]) # …

推荐算法八股总结

从计算机视觉转行搜广推的第9天 1.youtubednn 推荐系统经典模型YouTubeDNN_推荐系统架构图-CSDN博客文章浏览阅读2.1k次&#xff0c;点赞28次&#xff0c;收藏34次。本文详细介绍了YouTubeDNN推荐系统&#xff0c;包括其召回阶段的多模型筛选策略&#xff0c;排序阶段的复杂模…

EasyRTC音视频实时通话功能在WebRTC与智能硬件整合中的应用与优势

一、WebRTC与智能硬件整合趋势​ 随着物联网和实时通信需求的爆发式增长&#xff0c;WebRTC作为开源实时通信技术&#xff0c;为浏览器与移动应用提供免插件的音视频通信能力&#xff0c;在智能硬件领域的融合应用已成必然趋势。智能硬件不再局限于单一功能&#xff0c;对实时…

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…

生信服务器 | 做生信为什么推荐使用Linux服务器?

原文链接&#xff1a;生信服务器 | 做生信为什么推荐使用Linux服务器&#xff1f; 原文链接&#xff1a;生信服务器 | 做生信为什么推荐使用Linux服务器&#xff1f; ---- 原文链接&#xff1a;生信服务器 | 做生信为什么推荐使用Linux服务器&#xff1f; ---- 原文链…

OpenCV 图像色彩空间转换与抠图

一、知识点: 1、色彩空间转换函数 (1)、void cvtColor( InputArray src, OutputArray dst, int code, int dstCn 0, AlgorithmHint hint cv::ALGO_HINT_DEFAULT ); (2)、将图像从一种颜色空间转换为另一种。 (3)、参数说明: src: 输入图像&#xff0c;即要进行颜…

高斯列主元消去法——python实现

高斯列主元消去法 1. 高斯消去法 高斯消去法是一种求解线性方程组 A x b A\mathbf{x} \mathbf{b} Axb 的方法&#xff0c;通过逐步化简增广矩阵&#xff0c;将其变为上三角矩阵&#xff0c;从而方便求解未知数。 线性方程组的一般形式为&#xff1a; { a 11 x 1 a 12 x…

linux下安装elasticsearch及ik分词器

linux下安装elasticsearch及ik分词器 安装版本 linux版本&#xff1a;centos7.5 es版本&#xff1a;elasticsearch-7.14.0-linux-x86_64.tar.gz 下载地址&#xff1a;https://www.elastic.co/downloads/past-releases#elasticsearch Ik版本&#xff1a;elasticsearch-analysi…

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…

【配置篇】告别硬编码:多环境配置、@ConfigurationProperties与配置中心初探

摘要 本文是《Spring Boot 实战派》系列的第五篇&#xff0c;聚焦于企业级应用开发中至关重要的配置管理。文章将首先解决开发、测试、生产环境配置不同的痛点&#xff0c;详细介绍 Spring Boot 的 Profile&#xff08;多环境配置&#xff09; 机制。接着&#xff0c;我们将深…

代码随想录算法训练营第60期第六十三天打卡

大家好&#xff0c;我们昨天讲解的是拓扑排序与Dijkstra算法的朴素版&#xff0c;其实我们大致了解了两种算法的代码实现&#xff0c;我们通过上次博客了解到拓扑排序其实是可以判断图里是否存在环&#xff0c;而Dijkstra算法则使用于非负边权最短路的求解&#xff0c;今天我们…

linux中如何在日志里面检索nowStage不等于1的数据的指令

你想在 Linux 中查找日志文件中 nowStage 不等于 1 的所有 JSON 行&#xff0c;当前你已经使用了&#xff1a; Bash 深色版本 grep -rn "nowStage" ./ 这个命令可以找到包含 "nowStage" 字样的所有行及其所在的文件名和行号&#xff0c;但还不能筛选出 no…

【习题】DevEco Studio的使用

判断题 1. 如果代码中涉及到一些网络、数据库、传感器等功能的开发&#xff0c;均可使用预览器进行预览。 正确(True) 错误(False) 正确答案: 错误(False) 知识点 预览器的使用。解析&#xff1a;预览器只支持对页面的预览&#xff0c;如果代码中涉及到一些网络、数据库、…

SpringBoot实现简易直播

当下直播技术已经成为各类应用不可或缺的一部分&#xff0c;从社交媒体到在线教育&#xff0c;再到电子商务和游戏领域&#xff0c;直播功能正在被广泛应用。 本文将介绍如何使用SpringBoot框架构建一个直播流推拉系统。 一、直播技术基础 1.1 推流与拉流概念 直播系统的核心…