Codeforces Global Round 2: D.Frets On Fire

本文介绍了一道CodeForces D题的高效解法,通过使用离线操作来优化原始的O(n*m)暴力解法,达到更优的时间复杂度。主要讲解如何利用差分数组和排序来实现离线处理查询,从而有效解决大规模数据集的问题。

题目链接:https://codeforces.com/contest/1119/problem/D
题意:1e5个数,每个数是一个起点,从起点每次+1,1e18次。询问1e5次,在这个区间内不同的数有多少。
在这里插入图片描述
思路:
很容易想到暴力怎么做,但O(n*m),TLE–暴力不会的话这题就以后看吧
怎么优化,Olognm或者预处理或者离线操作On+m.
主要讲讲离线操作(其他我没想出来),我们做一次每个数的差分数组,然后询问记录也存下来,存到一个数组里面,排一次序。然后离线操作,跑一遍这个新存的数组。具体步骤不知道怎么用语言表述,对着代码把样例模拟一遍你就懂了。
在这里插入图片描述

https://paste.ubuntu.com/p/Y7HkFbg9zN/
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值