牛客 NC244138 剩下的数

链接:https://ac.nowcoder.com/acm/problem/244138
来源:牛客网

题目描述
牛牛有一个由 l … r l…r lr r − l + 1 r−l+1 rl+1 个整数组成的环。
牛妹对这个数环进行了 m m m 次询问,每次给定一个整数 x x x 问牛牛操作到不能继续操作时最少会剩下几个数。

每一次操作,牛牛都会选择环上一段(可以是整个环),这一段数的和应该为 x x x 的倍数,然后牛牛就会删去这一段,同时把剩下的数按顺序重新连成一个环。

输入描述:
本题采用多组案例输入,第一行一个整数 T T T 代表案例组数。
每组案例中,第一行输入两个空格分隔的整数: l , r l ,r lr
接下来一行输入一个整数 m m m
接下来 m m m 行,每行输入一个数 x x x 代表询问。
保证:
0 < l < r < 1 0 9 0<l<r<10^9 0<l<r<109
0 < x ≤ ( r − l + 1 ) 0<x≤(r−l+1) 0<x(rl+1)
单个测试点中所有案例 m m m 的和不超过 1 0 5 10^5 105

输出描述:
对于每组案例,输出共 m m m 行,每行一个整数代表牛妹询问的答案。

示例1
输入

1
1 5
2
2
3

输出

1
0

此题中, l l l r r r都小于 1 e 9 1e9 1e9,所以大概率是一道依靠找规律或者数学的题目,而且看到样例的输出中仅仅包含 1 1 1 0 0 0的时候就应该质疑一下该题目是否有一些特殊性。


首先来看第一种情况: 如果这个数环的所有组成的数加起来的总和就是所提出的询问的倍数,那么答案就很明确了,在这种情况下,我们可以在第一步直接删掉所有的数,那么就余下了 0 0 0个数,也就是最终的答案。满足这种情况的条件就是 所有数的总和 m o d x = = 0 mod x == 0 modx==0


然后是第二种情况: 如果这个数环所有数的加和不是所提出询问的数的倍数,那么答案就肯定是 1 1 1,也就是最终能余下的最小组成个数就是 1 1 1

首先, x x x的取值范围为 0 < x < = ( r − l + 1 ) 0 < x <= (r - l + 1) 0<x<=(rl+1),换句话说, x x x只能取到大于 0 0 0,且小于等于数环的组成个数的数,比如样例中 l l l 1 1 1 r r r 5 5 5,那么这个数环就是由 1 , 2 , 3 , 4 , 5 1,2,3,4,5 12345这五个数组成的,那么x的取值范围就是 0 < x < = 5 0 < x <= 5 0<x<=5

先来分析观察一下样例:

  • x = 1时,从 l l l r r r
1 % 1 = 0	2 % 1 = 0	3 % 1 = 0	4 % 1 = 0	5 % 1 = 0
  • x = 2时
1 % 2 = 1	2 % 2 = 0	3 % 2 = 1	4 % 2 = 0	5 % 2 = 1
  • x = 3时
1 % 3 = 1	2 % 3 = 2	3 % 3 = 0	4 % 3 = 1	5 % 3 = 2
  • x = 4时
1 % 4 = 1	2 % 4 = 2	3 % 4 = 3	4 % 4 = 0	5 % 4 = 1
  • x = 5时
1 % 5 = 1	2 % 5 = 2	3 % 5 = 3	4 % 5 = 4	5 % 5 = 0

这时候我们发现每次 m o d mod mod都能够取得 0 0 0 x − 1 x-1 x1的所有数。当然这种情况是建立在 0 < x < = ( l − r + 1 ) 0 < x <= (l-r+1) 0<x<=(lr+1)的情况下,如果x再等于 6 6 6的话,就无法取到0了。

所以就找到了一个规律:由于 0 < x < = ( l − r + 1 ) 0 < x <= (l -r +1) 0<x<=(lr+1),如果让l到r之间的所有数去 m o d x mod x modx,一定能够得到 0 0 0 x − 1 x-1 x1中的所有数。
如果 l l l r r r的加和不是 x x x的倍数的话,比如说 x = 4 x = 4 x=4的时候:l到r所有数的加和为 15 , 15 15,15 1515 % 4 = 3 4 = 3 4=3,可以发现 3 3 3 % 4 = 3 4 = 3 4=3 15 − 3 = 12 15 - 3 = 12 153=12 % 4 = = 0 4 == 0 4==0,所以我们就可以让 3 3 3这个数留下,删去其他的所有数,这时候就可以只留下 1 1 1个数。

推广到其他情形的话,因为 l l l r r r之间对 x x x取模一定能够取得 0 0 0 x − 1 x-1 x1中的所有的数,加入加和对 x x x取模得到了一个部位 0 0 0的数 a a a,根据取模的性质,这个 a a a肯定是小于 x x x的,那么就一定可以在 l l l r r r中找到一个数,满足这个数对 x x x取模同样也能取得 a a a,那么就一定可以删掉这个数之后使得数环剩下的数的加和能够为 x x x的倍数。

代码:

#include<iostream>
using namespace std;
int main(){ios::sync_with_stdio(false);cin.tie(0);int t;cin >>t;while(t--){long long l,r;cin >> l >> r;long long sum = (r - l + 1)*l + (r - l + 1)*(r - l)/2;	//等差数列求和公式int m;cin >>m;while(m--){int x;cin >>x;if(sum % x == 0){printf("0\n");}else{printf("1\n");}}}return 0;
}

(不过为什么l和r也要开long long才能过,明明都小于1e9…)

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

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

相关文章

python实例

设计者&#xff1a;ISDF工软未来 版本&#xff1a;v1.0 日期&#xff1a;2024/3/7 class Restaurant:餐馆类def __init__(self,restaurant_name,cuisine_type):#类的属性self.restaurant_name restaurant_nameself.cuisine_type cuisine_typeself.number_served 0def descri…

深度学习需要掌握哪些数学基础?

《深度学习的数学》这本书再合适不过了。作者罗纳德.T.纽塞尔&#xff08;Ronald T. Kneusel&#xff09;&#xff0c;拥有超过 20年的机器学习行业经验。 本书适合有一定深度学习基础、了解Python编程语言的读者阅读&#xff0c;也可作为用于拓展深度学习理论的参考书。 为什么…

贪心 Leetcode 738 单调递增的数字

单调递增的数字 Leetcode 738 学习记录自代码随想录 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xff0c;且数字呈 单调递增 。 示例 1: 输入: n 10 输…

CKA考试必备:解锁Pod封装多容器的高级技巧!

往期精彩文章 : 提升CKA考试胜算&#xff1a;一文带你全面了解RBAC权限控制&#xff01;揭秘高效运维&#xff1a;如何用kubectl top命令实时监控K8s资源使用情况&#xff1f;CKA认证必备&#xff1a;掌握k8s网络策略的关键要点提高CKA认证成功率&#xff0c;CKA真题中的节点维…

Numpy中常用函数np.clip和np.finfo

NumPy&#xff08;Numerical Python&#xff09;是Python科学计算的核心库之一&#xff0c;提供了高性能的多维数组对象&#xff08;ndarray&#xff09;以及用于数组操作的各种函数和工具。 np.finfo finfo函数是根据括号中的类型来获得信息&#xff0c;获得符合这个类型的数…

【MySQL】用户管理 -- 详解

如果我们只能使用 root 用户&#xff0c;这样存在安全隐患。这时就需要使用 MySQL 的用户管理。 一、 用户 1、用户信息 MySQL 中的用户都存储在系统数据库 MySQL 的 user 表中。 字段解释&#xff1a; host&#xff1a;表示这个用户可以从哪个主机登陆&#xff0c;如果…

【三】【SQL Server】如何运用SQL Server中查询设计器通关数据库期末查询大题

数据库学生选择1122 数据库展示 course表展示 SC表展示 student表展示 数据库学生选课1122_1 第一题 第二题 第三题 第四题 第五题 数据库学生选课1122_2 第六题 第七题 第八题 第九题 第十题 结尾 最后&#xff0c;感谢您阅读我的文章&#xff0c;希望这些内容能够对您有所启…

修改MySQL字段类型 DECIMAL 小数点后面位数

1&#xff0c;下面是修改表字段的SQL语句&#xff1a; ALTER TABLE 表名称 MODIFY 字段名称 DECIMAL(10,5) COMMENT 说明; 2&#xff0c;浮点型: float(255,30): 单精度&#xff0c;总长度是255&#xff0c;小数位是30。 double(255,30):双精度&#xff0c;总长度是255&#…

实践:qemu 运行 linux riscv with AIA(APLICIMSIC)

RISCV架构 Linux AIA支持 目标&#xff1a;在 Qemu 中运行一个支持 riscv aia 的 linux 翻译参考自&#xff1a;https://lwn.net/Articles/963231/ 文章日期&#xff1a;2024年2月22日&#xff0c;星期四&#xff08;截至2024年3月&#xff0c;最新&#xff09; 这个网站里在不…

Spring Boot工程集成验证码生成与验证功能教程

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

《Vite 报错》ReferenceError: module is not defined in ES module scope

ReferenceError: module is not defined in ES module scope 解决方案 postcss.config.js 要改为 postcss.config.cjs&#xff0c;也就是 .cjs 后缀。 原因解析 下图提示&#xff0c;packages.json 中的属性 type 设置为 module。所有 *.js 文件现在都被解释为 ESM&#xff…

电商店群系统的搭建需要用到的官方接口如何申请?

电商电子商务企业往往都会需要再很多平台上面铺货&#xff0c;上传商品。 高科技的今天&#xff0c;我们已经不需要手动一个个品去上传了。那通过官方接口&#xff0c;如何实现快速铺货呢&#xff1f; 1688官方开放平台的API接口类型众多&#xff0c;并不是所有的企业都能申请…

GitHub Pages部署静态页面

GitHub Pages是GitHub提供的静态页面托管服务&#xff0c;可以用来托管个人博客、项目文档等静态页面。GitHub Pages支持Jekyll&#xff0c;可以使用Jekyll构建博客&#xff0c;也可以使用其他静态页面生成器。现在GitHub Pages也在公测通过工作流部署静态页面&#xff0c;可以…

鸿蒙文章专题-2021年鸿蒙相关的文章废弃

#原因 至于为什么说2021年我的鸿蒙专栏的文章废弃了&#xff0c;只是说没有了参考意义&#xff0c;是因为鸿蒙4.0以前的版本语言从以Java为主过渡为以ArkTS为主。以前的Java版本的工程已经无法再使用了&#xff0c;后续的开发都必须以ArkTS开发语言为主。 其中而且整个项目结构…

三. 开发环境搭建

目录 一. Ubuntu 和 Windows 文件互传 1.1 VMware Tools 1.2 FileZilla 二. Ubuntu 下 NFS 和 SSH 服务开启 2.1 NFS 服务开启 ​编辑 2.2 SSH 服务开启 三. Ubuntu 交叉编译工具链安装 四. vscode的remote-ssh远程连接虚拟机 4.1 Windows的vscode安装 4.2 vscode远…

chatGPT的耳朵!OpenAI的开源语音识别AI:Whisper !

语音识别是通用人工智能的重要一环&#xff01;可以说是AI的耳朵&#xff01; 它可以让机器理解人类的语音&#xff0c;并将其转换为文本或其他形式的输出。 语音识别的应用场景非常广泛&#xff0c;比如智能助理、语音搜索、语音翻译、语音输入等等。 然而&#xff0c;语音…

专题1 - 双指针 - leetcode 11. 盛最多水的容器

leetcode 11. 盛最多水的容器 1. leetcode 11. 盛最多水的容器1. 题目详情1. 原题链接2. 基础框架 2. 解题思路1. 题目分析2. 算法原理3. 时间复杂度 3. 代码实现4. 知识与收获 1. leetcode 11. 盛最多水的容器 1. 题目详情 给定一个长度为 n 的整数数组 height 。有 n 条垂线…

【c++】类中成员函数和成员变量的存储

成员函数和成员变量是分开存储的 1. 非静态成员变量&#xff0c;属于类的一部分&#xff0c;sizeof(类名)的时候会包括进去 2. 静态成员变量&#xff0c;不属于类的一部分&#xff0c;不会影响类的大小 3. 成员函数&#xff0c;都不属于类的一部分 4. 空类大小为1B

分享一波非标设计资源合集

01 非标电表箱柜 本项目为创博智慧云产业研发中心的非标配电箱、电表箱设计原理图&#xff0c;地块一层含dwg图纸一份&#xff0c;包括配电箱壳体尺寸、原理图、接线图等20多种设计图纸。 02 住宅楼高压 低压 非标箱原理和箱体图 本图纸为高级住宅小区高低压非标箱设计原理…

一. Ubuntu入门

目录 一. Ubuntu系统安装 1. 安装虚拟机软件VMware 2. 安装Ubuntu操作系统 二. Ubuntu系统入门 1. Shell操作 1.1 Shell 简介 1.2 Shell基本操作 1.3 常用Shell命令 (1) 目录信息查看命令ls (2) 目录切换命令cd (3) 当前路径显示命令pwd (4) 系统信息查看命令uname…