[CSP-S模拟测试]:喝喝喝(模拟)

题目描述

奥利维尔和雪拉扎德在喝酒。
两人连喝$18$瓶后,奥利维尔最终倒下了。
奥利维尔服用了教会研究的醒酒药后,因为服用了太多产生了副作用,第二天睡不着了。
他只好用数数的方式度过无聊的时光,不过他毕竟是皇子,是不会数羊的。他会数数解决小面这个问题:
他先写下一个长度为$n$的数组$a$。一对数组中的数$\{a_x,a_y\}$被称为坏对,当且仅当$x<y$且$a_x\mod a_y=K$。那么有多少个连续子数组不包含坏对呢?


输入格式

一行包含两个整数,$n$和$K$。
第二行包含$n$个整数,表示数组$a$。


输出格式

输出一行包含答案。


样例

样例输入:

3 2
5 3 1

样例输出:

4


数据范围与提示

样例解释:

$\{5,3\}$是这个数组中唯一一个坏对。

数据范围:

对于$20\%$的数据,$1\leqslant n\leqslant 100$。
对于另外$30\%$的数据,$K=0$。
对于$100\%$的数据,$1\leqslant n\leqslant {10}^5,0\leqslant K\leqslant {10}^5,1\leqslant a_i\leqslant {10}^5$


题解

发现对于一个左端点,其合法区间的右端点一定是一个连续的段,而不能是断断续续的。

所以我们考虑维护合法区间。

$a_x\mod a_y=K$即为$(a_x-K)\mod a_y=0$。

那么我们可以将$a_x-K$分解质因数即可。

时间复杂度:$\Theta(n)$。

期望得分:$100$分。

实际得分:$100$分。


代码时刻

#include<bits/stdc++.h>
using namespace std;
long long n,K,ans;
long long a[100001];
long long cnt[100001];
int main()
{
	memset(cnt,0x3f,sizeof(cnt));
	scanf("%lld%lld",&n,&K);
	for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
	long long lft=n,rht=n+1;
	for(int i=n;i;i--)
	{
		if(a[i]==K)rht=min(lft,rht);
		else
			for(int j=1;j*j<=a[i]-K;j++)
			{
				if((a[i]-K)%j)continue;
				if(j>K)rht=min(cnt[j],rht);
				if((a[i]-K)/j>K)rht=min(cnt[(a[i]-K)/j],rht);
			}
		if(a[i]>K)lft=i;
		cnt[a[i]]=i;
		ans+=rht-i;
	}
	printf("%lld",ans);
	return 0;
}

rp++

转载于:https://www.cnblogs.com/wzc521/p/11479569.html

csp-j/s组第一轮测试140题版本模拟试题及解析 1、在8位二进制补码中,10101010表示的数是十进制下的(B) A、176 B、-86 C、-85 D、-84 答案解析:补码=反码+1;反码=原码除符号位外各个位取反;原码是和十进制对应的;所以,现将补码10101010转化成原码:符号位不变,减1后得到10011111,然后按位取反得到11100000,最后按权展开求和得到十进制数-86。 2、中缀表达式A-(B+C/D)E的后缀表达式是(D) A、AB-C+D/E B、ABC+D/-E* C、ABCD/E*± D、ABCD 阅读详情

相关推荐

csp-j/s模拟题详细题解

今天做了一套不错的模拟题,准备csp-j的兄弟们可以进来看看

贤鱼的博客 2291

2019.10.31日CSP-S备赛

T1 次芝麻 【题目描述】 小K和小X都是小次货。 身为小次货,最重要的事情当然是次啦,所有他们正在纠结如何分芝麻次。 一开始,小K有n个芝麻,小X有m个芝麻。 因为他们都想次更多芝麻,所以每次手中芝麻较少的人就会拿走另一个人的芝麻,使得自己的芝麻变成原来的2倍那么多。如果两个人芝麻一样多,那么小K会拿小X的芝麻使得他的芝麻变成原来的2倍。 经过K次这样的行动之后,小K和小X都累了,所以他们准备开始次芝麻了。 身在一旁的小Z想知道,小K和小X中次的较少的那个人次了多少芝麻呢? 【输入格式】 一行三个整数n,

clear_conscience的博客 317

CSP-J CSP-S 初赛模拟试题(2020.10.10).pdf

CSP-J CSP-S 初赛模拟试题(2020.10.10).pdf

CSP-J模拟赛day3——试题

时间限制:1ms/空间限制:512MB。

CylMK的博客 1130

配置思科交换机冗余链路汇聚

本文对交换机端口汇聚配置进行说明

istrangeboy&begin zero的博客 6684

SAP SD实战:用BADI_SLS_HEAD_SCR_CUS给销售订单VA01/VA02加自定义字段(附完整函数组代码)

本文详细解析了在SAP SD模块中如何利用BADI_SLS_HEAD_SCR_CUS实现销售订单(VA01/VA02)的屏幕增强,包括数据结构设计、函数组创建和BADI接口实现。通过实战案例和完整代码,帮助开发者掌握在SAPMV45A标准流程中添加自定义字段的关键技术,提升业务定制化能力。

weixin_27015733的博客 369

CSP-J 模拟赛4

服了,文件还能写错。这次爆零了,也是模拟首爆,下次记得别把r和w写反了,第二题也就差一点,被卡了cin、cout,下次记得关同步,有史以来因为个人疏漏出错最多的一次,希望下次能吸取教训吧。早日AKJ组!!!最后把文件输入输出贴在这里A%2CB%2CC1A11C2A21A1A%2CB%2CC1nA%2CB%2CCO%28n%29n&plus;

woaiyingbi的博客 1568

第3章 信息技术服务(一)

对 第三章 《信息技术服务》中第一、二、三节 <内涵与外延、原理与组成、服务生命周期>进行总结、归纳

好好学习,天天向上的博客 733

CSP-J/S第一轮初赛模拟赛试题

CSP-J/S 2024 第一轮模拟赛及答案,原创不抄袭,全网找不到原题。

liuyuxuan_0315的博客 1315

RK3588多路MIPI摄像头采集与WiFi低延迟传输实战指南

本文详细介绍了基于RK3588平台实现多路MIPI摄像头同步采集并通过WiFi进行低延迟传输的完整实战方案。文章深入剖析了从V4L2驱动配置、多线程采集、环形缓冲区设计到UDP网络传输优化的核心技术,旨在帮助开发者在工业检测、智能安防等场景下构建高并发、高实时性的视频流系统,实现端到端延迟控制在100毫秒以内的目标。

tensor9flow的博客 787

为什么需要知识图谱?什么是知识图谱?——KG的前世今生

我的知乎专栏,对知识图谱感兴趣的朋友可以关注。标题的命名顺序可能让有的读者不太习惯。通常在介绍一个陌生事物的应用前,我们先给出其定义。之所以换个顺序,是为了不让读者一开始就接触比较冰冷生硬的概念刻板描述(后面我尽量用更具体、准确的例子来表达),另一方面也是为了通过现实生活中的例子自然的引入知识图谱的概念。希望通过这种方式加深读者的印象和理解。为了减轻读者理解的负担,我尽可能地避免引入过多的概念和技术

SimmerChan的专栏 8万+

2024CSP-J初赛全真模拟卷选择题篇(原创,难度偏简单)

注意,本卷由再临TSC原创,禁止转载!本卷难度偏简单,若想要通过初赛本卷应拿80+分左右

Alan_Becker的博客 4558

告别迷茫!用ETAS RTA-OS配置你的第一个AUTOSAR OS任务(含VRTA虚拟ECU实战)

本文详细介绍了如何使用ETAS RTA-OS工具链在VRTA虚拟ECU上配置和运行第一个AUTOSAR OS任务。通过从XML配置到任务调度的全流程实战,帮助开发者快速掌握嵌入式操作系统开发的核心步骤,特别适合刚接触AUTOSAR的开发者快速上手。

weixin_42533622的博客 418

CSP-S 模拟 19/10/03

T1:求 1 – n 的排列中逆序对为 k 的个数 n,k≤1000n,k\le 1000n,k≤1000 令 fi,jf_{i,j}fi,j​ 表示 1−−i1--i1−−i 的排列逆序对为 k 的个数 考虑将 i+1i + 1i+1 插进去,插到第 p 个位置对逆序对的贡献就是 i+1−pi+1 - pi+1−p 然后发现对于 [j,j+i][j,j+i][j,j+i]区间的 fi+1,jf_...

FSYo 的博客 388

Ubuntu20.04下SRS流媒体服务器的安装与开机自启动优化指南

本文详细介绍了在Ubuntu20.04系统下安装SRS流媒体服务器并优化开机自启动的完整指南。从基础环境准备、服务管理方案对比到systemd自启动深度优化,提供了实用的配置技巧和排查方法,帮助用户快速搭建稳定的流媒体服务环境。特别推荐使用systemd方案实现高效的自启动管理。

weixin_29313239的博客 413

数据分享|1961-2017年中国0.25°×0.25° 逐日地表水文数据集(VIC-CN05.1)

其中,全球径流中心(University of New Hampshire and Global Runoff Data Centre, UNH/GRDC)的复合产流场集成了观测的河道径流和水量平衡模式模拟的地表和地下径流,常被用来评估模拟的径流。在长白山、海北灌丛和千烟洲通量站,模拟与观测的逐月潜热通量的平均NSE为0.61。VIC-CN05.1受益于较准确的大气驱动场、先进的地表水文参数化方案以及更真实丰富的土壤信息,可作为中国水文气象研究的参照数据,用于陆面模式的评估和长期的趋势分析等。

J_Giser的博客 1833

0917CSP-S模拟测试赛后总结

机房搬家后的首战,便是失利。 依旧是挂掉了。这次状态有大问题。 然而状态的问题归根结底还是实力不行。 大约一个小时左右我拿到了T1的部分分。赛时判断了一下大概是高分。 (不过赛后发现确实不算什么太高的分,只能算大众分=。=) 原因是二分策略自己证出来不对了。但是并没有方法能够挽救我的思路。拍了拍,大约7000个点错一个,就交了。 然后去刚T2。想了一个非常nc的算法,(事实证...

weixin_30698527的博客 218

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

CSP2019模拟赛B

题目大意 有一个由NNN条边构成的正多边形,要求选出MMM个顶点并将这些点顺次连起来,使得构成的多边形有恰好KKK个锐角,求方案数。 分析 显然的容斥原理 Part1. 有锐角的条件 根据我们学过的初中数学知识,我们可以知道: 不可能有一个多边形出现多于三个锐角; 正多边形的各个顶点一定共圆; 等弦对等角。 我们简单画一下图就可以发现,当我们在圆上任意取三个点A,B,CA,B,CA,B,C时,...

IDDFS 480

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

[CSP-S模拟测试]:走格子(模拟+BFS+Dijkstra)

题目描述 $CYJ$想找到他的小伙伴$FPJ$,$CYJ$和$FPJ$现在位于一个房间里,这个房间的布置可以看成一个$N$行$M$列的矩阵,矩阵内的每一个元素会是下列情况中的一种:$1.$障碍区域—这里有一堵墙(用$'\#'$表示)。$2.$这是$CYJ$最开始在的区域(用$'C'$表示)。$3.$这是$FPJ$在的区域(用$'F'$表示)。$4.$空区域(用$'.'$表示)。$CYJ...

weixin_30394251的博客 322

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

csp-s模拟测试44「D·E·F」

用心出题,用脚造数据 乱搞场 1 #include<bits/stdc++.h> 2 #define re register 3 #define int long long 4 #define inf 0x7ffffffffffffff 5 using namespace std; 6 int n,a[100010],b[100010],an...

weixin_30484739的博客 271

(CSP2019模拟)结界[生与死的境界]

题意 给定一个长度为nnn的序列aaa,有qqq次询问,每次询问一个区间[l,r][l,r][l,r],对区间内的数可进行若干次操作,每次合并相邻的两个数x,yx,yx,y,变为x+2yx+2yx+2y,最后变为111个数,求最终数的最大值。询问无后效性。 数据范围:1≤n,q≤105,−109≤ai≤1091\le n,q \le 10^{5},- 10^{9} \le a_i \le 10^{...

sz_165394732的博客 502

CSP-S 模拟 19/10/09

T1:背包模板 T2:分数规划+单调队列模板 T3:华莱士 题意:选一些边并定下方向,使得每个点入度为 1,问选出来的最小边权和 发现我们可以先把这些边选出来,然后再定方向 我们发现一些性质:一个环只可能出不可能进,也就是我们最后选出来的图环两两之间没有边 脑补一些最后选出来的边的模型,就是基环树,环,它们之间不一定联通 考虑最小生成树一般的贪心 如果当前的两个点不联通,加上 如果当前的两个点联通...

FSYo 的博客 303

csp模拟

T1 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int MAXN=10005; char str[MAXN]; int main(void){ scanf("%s",str); int str_len=strlen(str); in...

playerz的博客 512

csp-s模拟测试50

期望得分:30+43+60 实际得分:0+43+60 rk13 A. 施工 看错题了,一是高度差的绝对值算了两遍,二是一次抬起一栋建筑。 正解: 手模发现5 1 2 5 的坑抬成 5 1 3 5是只会变差的,也就是对于一个凹下去的部分,答案取决于最深的位置。所以坑底一定是平的。 把坑抬到比两边高是不优的。显然 然后把式子拆开维护前缀和,最后算...

weixin_30360497的博客 386

多校联考 CSP-J 2019 第三次模拟赛 题解

多校联考 CSP-J 2019 第三次模拟赛 题解

Panda_Hu's blog 3127

191029-CSP模拟DAY1

今天又差点垫底,下次要加油啊。 T1:数列 传送门 题意:给一个序列,对每一个数进行±a或±b的操作,求最小操作次数。可以轻松(其实并不轻松 )地看出是一道解不定方程的题,即给定一个数w,求一组满足ax+by=w的解,且x和y的绝对值之和最小。x,y的通集为(x+kbgcd(a,b),y−kagcd(a,b))\left(x+k \frac{b}{g c d(a, b)}, y-k \frac{a...

超级蒟蒻的博客 242
上一篇: [CSP-S模拟测试]:次芝麻(数学)
下一篇: [CSP-S模拟测试]:长寿花(DP+组合数)
badiu_30394251
博客等级 码龄11年 124粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值