数据结构
文章平均质量分 83
恩比德爱上大帝
这个作者很懒,什么都没留下…
展开
-
gym102391 2019-2020 XX Open Cup, Grand Prix of Korea K Wind of Change
题目:给定两棵nnn个结点的有边权的树T1,T2T1,T2T1,T2,问对于∀1≤i≤n\forall 1 \le i \le n∀1≤i≤n,minj≠i{disT1,i,j+disT2,i,j}\min \limits_{j \ne i}\{dis_{T1,i,j}+dis_{T2,i,j}\}j=imin{disT1,i,j+disT2,i,j}为多少。(1≤n≤250000)(1 \le n\le 250000)(1≤n≤250000)题解:这种树上两点间路径的问题考虑用点分树来原创 2021-02-24 20:15:05 · 1363 阅读 · 0 评论 -
hdu6304 2018杭电多校1H RMQ Similar Sequence
题目:给定一个长度为nnn的序列AAA,要找长度为nnn的序列BBB,满足∀1≤l≤r≤n\forall 1 \le l \le r \le n∀1≤l≤r≤n,RMQ(A,l,r)=RMQ(B,l,r)RMQ(A,l,r)=RMQ(B,l,r)RMQ(A,l,r)=RMQ(B,l,r),其中RMQ(A,l,r)RMQ(A,l,r)RMQ(A,l,r)为[l,r][l,r][l,r]中最小的下标iii满足Ai=maxl≤j≤r{Aj}A_i=\max \limits_{l \le j \le r}\{A原创 2021-02-23 22:31:49 · 97 阅读 · 0 评论 -
gym102391 2019-2020 XX Open Cup, Grand Prix of Korea J Parklife
题目:有一个[1,106][1,10^6][1,106]的数轴,有nnn个线段去覆盖这个数轴,其中第iii条线段的左端点为SiS_iSi,右端点为EiE_iEi,有一个权值ViV_iVi,这些线段要么包含,要么不相交,问对于∀1≤k≤n\forall 1 \le k \le n∀1≤k≤n,在数轴上每一个长度为1的小区间被覆盖最多kkk次的限制下能取的线段权值和的最大值。(1≤n≤250000)(1 \le n \le 250000)(1≤n≤250000)题解:首先注意到这些线段要么包含,要原创 2021-02-22 15:17:30 · 287 阅读 · 0 评论 -
gym102798 2020CCPC威海J Steins;Game
题目:给定nnn堆石子aaa,每堆石子被染成了黑色或者白色,现在两个人轮流进行以下的其中一个操作:1、从石子数量最少的一个黑色石堆中拿走若干石子2、从任意一个白色石堆中拿走若干石子两个人都采取最优策略,不能操作者输。现在染色工作由后手的人完成,问有多少种染色方案可以使后手赢。(1≤n≤105,1≤ai≤1018)(1 \le n \le 10^5,1 \le a_i \le 10^{18})(1≤n≤105,1≤ai≤1018)题解:首先黑色和白色的石堆不相干,可以看成两个游戏的和,白色石堆原创 2021-02-20 22:38:53 · 286 阅读 · 0 评论 -
gym102391 2019-2020 XX Open Cup, Grand Prix of Korea F Hilbert‘s Hotel
题目链接题目:请看原题题面题解:可以发现每个组所占的房间的间隔永远是一样的,所以房间位置就是一个等差数列,我们维护每个组的最左端的房间位置startstartstart和间隔stepstepstep,具体的是用两棵线段树分别维护startstartstart和stepstepstep,那么操作1和操作2就变成了带有乘法和加法标记的线段树的操作了。对于操作3另外考虑,我们把连续的来有限个客人的情况所在一起,那么对于操作3的xxx可以通过回溯来客人的影响得到答案,来无限个客人会使xxx除以2,对于有限个原创 2021-02-19 19:40:50 · 312 阅读 · 0 评论 -
codeforces1476G Minimum Difference
题目:给定一个长度为nnn的序列aaa,有两种操作:(1)1 l r k1\ l \ r \ k1 l r k,问[l,r][l,r][l,r]区间内是否存在kkk个不同的数,如果存在,设为x1...kx_{1...k}x1...k,其中xix_ixi出现的次数为cnticnt_icnti,问最小的difdifdif,使任意的i,j(1≤i,j≤k)i,j(1 \le i,j \le k)i,j(1≤i,j≤k),满足∣cnti−cntj原创 2021-02-01 14:30:10 · 285 阅读 · 0 评论 -
codeforces1468A LaIS
题目:给定一个长度为nnn的序列aaa,若序列bbb满足min(b1,b2)≤min(b2,b3)≤...≤min(bk−1,bk)\min(b_1,b_2) \le \min(b_2,b_3) \le ... \le \min(b_{k-1},b_k)min(b1,b2)≤min(b2,b3)≤...≤min(bk−1,bk),其中kkk为序列bbb的长度,那么称序列bbb为几乎上升的,求序列aaa的最长的几乎上升的子序列的长度。(1≤n≤5×105,1≤ai≤n)(1 \le n原创 2021-01-21 16:11:35 · 363 阅读 · 0 评论 -
2020ICPC小米邀请赛决赛B Rikka with Maximum Segment Sum
题目链接题意:给定一个长度为nnn的序列aaa,求所有子区间的最大连续子列和之和,即∑i=1n∑j=inmaxi≤k≤h≤j{∑l=khal}\sum_{i=1}^{n} \sum_{j=i}^{n} \max \limits_{i \le k \le h \le j} \{\sum_{l=k}^{h}a_l\}∑i=1n∑j=ini≤k≤h≤jmax{∑l=khal}(1≤n≤2×105,−109≤ai≤109)(1 \le n \le 2 \times 10^5,-10^9 \le a原创 2021-01-10 23:00:58 · 358 阅读 · 0 评论 -
codeforces1467E Distinctive Roots in a Tree
题目:给定一棵nnn个结点的树,每个点有一个权值aia_iai,问有多少个点uuu满足从uuu出发到其他所有点的路径中都不存在两个权值相同的点。(1≤n≤2×105,1≤ai≤109)(1 \le n \le 2 \times10^5,1 \le a_i \le 10^9)(1≤n≤2×105,1≤ai≤109)题解:一开始拿到这个题我想的是用换根dpdpdp,但发现有一些信息维护不了。这道题应该从性质入手,先随便确定一个根,考虑有两个权值相同的点的情况,设为u,vu,vu,v:(1)u,v原创 2021-01-10 15:23:10 · 234 阅读 · 1 评论 -
2020ICPC济南K Kth Query
题目链接题目:中文描述不清,不如直接看题面(1≤n,q≤105,0≤ai<230,1≤L<R<230,1≤K≤n)(1 \le n,q \le 10^5,0 \le a_i <2^{30},1 \le L<R<2^{30},1 \le K \le n)(1≤n,q≤105,0≤ai<230,1≤L<R<230,1≤K≤n)题解:如果对01trie的基本操作不是很熟悉,可以参考这里这种异或的操作显然可以在01trie上实现。先将序列aaa中原创 2021-01-06 15:38:19 · 692 阅读 · 2 评论 -
01trie小记
1、hdu4825 Xor Sum题目链接 题目: 给定nnn个正整数a1...na_{1...n}a1...n和mmm次询问, 每次询问给定一个SSS,找到apa_pap,满足ap⊕S=max1≤i≤n{ai⊕S}a_p\oplus S=\max \limits_{1 \le i \le n}\{a_i \oplus S\}ap⊕S=1≤i≤nmax{ai⊕S}。(1≤n,m≤105,0<ai,S<232)(1 \le n,m \le 10^5,0<a_i,S<原创 2021-01-06 15:37:15 · 224 阅读 · 0 评论 -
P4135 作诗
题目:给定nnn个不大于ccc的整数a1...na_{1...n}a1...n和mmm次询问,每次询问[l,r][l,r][l,r]中有多少个数出现了正偶数次。(1≤n,c,m≤105,1≤l,r≤n,0≤ai≤c)(1 \le n ,c,m\le 10^5,1 \le l,r \le n,0 \le a_i \le c)(1≤n,c,m≤105,1≤l,r≤n,0≤ai≤c)题解:没有什么数据结构可以直接维护这个信息,考虑用分块来做。将aaa按块大小为n\sqrt{n}n进行分块。令fi原创 2021-01-03 21:30:24 · 113 阅读 · 0 评论 -
codeforces1443E Long Permutation
题目:给定一个长度为nnn的排列aaa,初始为ai=ia_i=iai=i,即[1,2,3,...][1,2,3,...][1,2,3,...]。有以下2种操作: 1 lll rrr:求出∑i=lrai\sum_{i=l}^r a_i∑i=lrai 2 xxx:执行next_permutation(a)next\_permutation(a)next_permutation(a)(找到字典序最小的比aaa大的排列)xxx次现在给定qqq次上述操作,对于每个操作1,输出结果。(1≤n,k≤2原创 2021-01-03 14:03:38 · 230 阅读 · 0 评论