首页 > 值周
头像 Timethethief
发表于 2020-05-21 21:23:00
该题和 NC16649 校门外的树 这题类似只不过校门外这道题由于数据范围比较小,所以直接“暴力”就可以过(当然,会写 “差分+前缀和” 的小伙伴也可以用该方法来写,对加深对该方法的理解度和速度都是有帮助的) 注意事项:这题的题目范围是 1≤L≤1e8,1<=M<=1e6差分数组开个1e 展开全文
头像 sunrise__sunrise
发表于 2020-05-22 10:18:11
值周 良心出题人,给了512MB的空间,可以直接开下数组,差分就能A,不过都给到这么大了,差分就差点意思了,差分可以去试试校门外的树那道题,这里还是用离散去写吧,不知道为什么我用雨巨的离散这里只拿了90分……太奇怪了,好的我发现了是我太菜了看着思路写都有地方写错了,之前那个校门外的树都A过,那我还是 展开全文
头像 平凡的小白
发表于 2020-05-29 21:29:26
思路:贪心+离散化对离散化有点误解,想把每个区间的点映射成一个小的点,但因为每个点的大小与结果有关,这样不好实现,想了我好久,看了大佬的代码后豁然开朗。1.按左区间升序排序,如果左区间相同就按右区间升序排序,统计被移走的人数。2.第一个区间被移走的人数是,标记右区间。3.如果区间i的左区间比end大 展开全文
头像 HGDB
发表于 2020-05-28 12:32:39
思路 最开始懒得离散化直接开1e8的数组用差分做,提交发现能ac,良心出题人啊给了这么大的空间 就说明这个位置有人,因为可能多次赶一个地方的人,所以差分数组有可能是负数 如果没学过差分的同学可以去看看这篇大佬的博客 正解应该是离散,计算被清除的区间长度,总长度减掉区间长度加一就是答案。维护终点即可 展开全文
头像 精神病科黄主任
发表于 2020-05-19 12:29:26
这两题一样就放一起写了。无非就是值周的数据范围大一些。。 校门外的树可以直接暴力就ok。 值周的话。考虑把区间修改变成区间端点修改,即差分,m次结束后进行一次前缀和。然后统计没有被标记过的即可。 这里顺便提一下扩展的内容,就是说L很大,数组开不下,m的大小还是不变。 这里我们不能差分了,应该数组太大 展开全文
头像 Bernard5
发表于 2020-05-15 01:22:53
和校门口的树是一样的。只不过校门口的树数据太水了。 对于,前缀和 + 差分可以满足需求,再大就需要离散化,这个离散化还是稍有难度的(暂时先不写了 #include <bits/stdc++.h> using namespace std; typedef long long ll; con 展开全文
头像 ziuch
发表于 2020-08-22 19:31:22
题目描述 题目背景 你是能看见第3题的friends哦 ——taoyc 题目描述 JC内长度为L的马路上有一些值周同学,每两个相邻的同学之间的间隔都 展开全文
头像 usx21145328
发表于 2022-01-09 22:14:48
思路:差分+离散化,将题目里涉及的点可以离散化为1,2,3,4,5.....这样的数组的下标,在离散化的同时还要记录对这个点的操作,如果是去除一人就在这下标+1,然后再在这个下标位置后m个地方记录-1的点来保证后面的数不受影响. #include<iostream> #include&l 展开全文
头像 Zhenx_Jia
发表于 2024-03-12 18:51:50
和 《校门外的树》 是一样的思路,但数据量要稍微大一些 #include <bits/stdc++.h> using namespace std; //和 校门外的树 一样 const int N = 1e8 + 5; int l, m, s[N], a[N]; int main() 展开全文
头像 如初见_
发表于 2025-02-12 17:11:35
#include <iostream> #include<algorithm> using namespace std; int l,m; struct ty {     int pos,num; }a[2000005];跟校门外的树差不多,离散化用的数组 展开全文

等你来战

查看全部