ittle w and Discretization 主席树维护Mex. 每个右端点 r 维护出一棵 在[1, r ] 区间中 其他所有的 值离这个 r 最近的的位置是多少. 然后询问区间[L,R]的时候,从rt[R] 出发,然后如果左儿子的中所有出线位置的最小值 >= L, 则说明他们所有的点都出线在这个区间内了,然后往右走. 否则就说明左边有点没有出线过,需要往左走. 代码: #include<bits/stdc++.h> using namespace std; #define F…
LINK:牛牛的揠苗助长 题目很水 不过做法很多 想到一个近乎O(n)的做法 不过感觉假了 最后决定莽一个主席树 当然 平衡树也行. 容易想到 答案为ans天 那么一些点的有效增长项数为 ans%n. 那么其实可以直接枚举答案到底在哪个位置 那么问题转换成了 需要最少多少次 每次可以给每个数+1或者-1 使得整个序列数字相等. 容易想到最后答案中位数 即排序后a[n/2+1].这样排个序数一下前后缀和即可. 不过 每次动态+1 求动态中位数这件事情 可以利用一个右指针扫描什么的 不过存在一些细节…
链接:https://ac.nowcoder.com/acm/contest/297/C来源:牛客网 题目描述 小w有m条线段,编号为1到m. 用这些线段覆盖数轴上的n个点,编号为1到n. 第i条线段覆盖数轴上的区间是L[i],R[i]. 覆盖的区间可能会有重叠,而且不保证m条线段一定能覆盖所有n个点. 现在小w不小心丢失了一条线段,请问丢失哪条线段,使数轴上没被覆盖到的点的个数尽可能少,请输出丢失的线段的编号和没被覆盖到的点的个数.如果有多条线段符合要求,请输出编号最大线段的编号(编号为1到m…
题意 题目链接 Sol Orz lyq 我们可以把一支军队(u, v)拆分为两个(u, lca)和(v, lca) 考虑一个点x,什么时候军队对它有贡献,肯定是u或v在他的子树内,且lca在他的子树外 因为需要让至少k个军队能够完全覆盖,所以肯定是选深度第k小的 这个过程可以用dfs序+主席树来实现 拿(u, lca)来说,在dfn[u]对应的线段树中,dep[lca]处+1即可. 然后查第k大即可 /**/ #include<cstdio> #include<vector> us…
题意: 给n个数,和m 问这组数是否可以构成[1, m]中的每一个数 思路: 先将a数组排序. 先算算构成前几个数需要什么,至少需要a[1]=1 需要a[2] = 1,2 在a[2] = 1的情况下a[3] = 1, 2, 3, 在a[2] = 2的情况下a[3] = 1, 2, 3, 4 (不能等于5及以上,否则无法构成4) 然后我们想决定a[4]的选择取决于什么,设s = a[1] + a[2] + a[3], 意味着前3个最多可以构成s 同时还意味着前三个可以构成[1, s], 因为a[4…
正解:堆 解题报告: 传送门$QwQ$ 考虑把$b$从大往小排序,然后把$a_1+b_1,a_2+b_1,...,a_n+b_1$丢到堆里,顺便记录下$b$的下标 然后每次拿出一个最大值,设为$mx=x+b_i$,就把$x+b_{i+1}$丢进去就成 $over$ 然后拓展以下$q$的范围是$m\cdot n$的时候怎么做昂$QAQ$ 考虑把$a,b$分别排序,然后二分这个第$k$大是多少,发现$b$的数量是递增的,所以随便维护一下,$check$的复杂度就$O(m+n)$的 然后总的复杂度大概…
A.Laptop 链接:https://ac.nowcoder.com/acm/contest/16/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 FST是一名可怜的小朋友,他很强,但是经常fst,所以rating一直低迷. 但是重点在于,他非常适合ACM!并在最近的区域赛中获得了不错的成绩. 拿到奖金后FST决定买一台新笔记本,但是FST发现,在价格能承受的范围内,笔…
链接:https://ac.nowcoder.com/acm/contest/904/E 来源:牛客网 DongDong数颜色 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 DongDong是个喜欢数颜色的女孩子,她已经熟练地掌握了在序列上数颜色的操作,现在她开始学习如何在树上数颜色,现在给定一个n个点,n-1条边的树形图(视1号店为根),每个点有一个颜色,每次询问以x为根的子树中有…
考试的时候切的,类似HH的项链~ code: #include <bits/stdc++.h> #define ll long long #define M 500003 #define N 2000005 #define inf 100000000 #define lson now<<1 #define rson now<<1|1 #define setIO(s) freopen(s".in","r",stdin) using…
写线性基交函数时调试了半天.. #include<bits/stdc++.h> using namespace std; #define ll long long #define maxn 100005 int n,m; struct LB{ ll b[]; int check(ll x){ ;i>=;i--)){ ; x^=b[i]; } ; } void insert(ll x){ ;i>=;i--)){ if(!b[i]){ b[i]=x;return; } x^=b[i];…