![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
———数据结构———
Hacheylight
ZJ OIer
展开
-
洛谷luogu-2949 工作调度(USACO) HQG_AC的博客
由于工作的开始时间都相同,所以我们可以考虑把时间轴倒过来。我们从后向前扫每个时间点,每次将刚好在这个时间点上结束的所有工作放入堆中,之后将这个堆的最大元素作为当前时间点的完成工作。由于时间很长,所以我们要离散化。时间复杂度O(n logn)详见代码:#include <bits/stdc++.h>using namespace std ;vector <int> a[1...原创 2018-02-20 11:39:09 · 299 阅读 · 0 评论 -
Codeforces 1111C Creating Snap (动态开点线段树)
wow 出题人太良心了放动态开点线段树过了理解题意,发现我们要维护的是一个长度为 2n2^n2n 的区间。于是我们想到用线段树来维护。线段树的每个节点维护区间内的人数和价值,然后按照题意 pushuppushuppushup 即可。注意如果一个区间内的人数为 000,这个区间的价值为 AAA 。由于 2n2^n2n 很大,所以我们要动态开节点。建树的时候将所有人依次插入线段树中。最后...原创 2019-02-09 15:34:07 · 399 阅读 · 2 评论 -
0x43 Interval GCD (线段树+树状数组+GCD)
数据结构好题原创 2019-02-09 16:37:33 · 196 阅读 · 0 评论 -
0x44 [Violet]蒲公英(分块)
这是一个处理区间众数的经典题原创 2019-02-09 20:08:56 · 239 阅读 · 0 评论 -
Bzoj 4241 历史研究 (分块)
题解中竟没有分块做法? 本人来水一发~这题分块挺显然的,一看就长着一副区间众数的脸都是套路。。。离散化是必须的,注意,查询请不要写成 O(nlogn)O(nlogn)O(nlogn)没有修改,直接预处理f[i][j]f[i][j]f[i][j] 表示前 iii 个块数字 jjj 出现了几次g[i][j]g[i][j]g[i][j] 表示块 iii 到块 jjj 的答案这两个数组显然都...原创 2019-02-22 10:14:10 · 274 阅读 · 0 评论 -
IOI 2007 Sail (线段树+贪心)
题意:有一艘船,船上有 nnn 个旗杆,每个旗杆上有 hih_ihi 个小节。每根旗杆上会挂 kik_iki 张帆每个小节最多挂一个帆。在风中,帆的不同排布方式会产生不同的推动力对于任意一张帆,他的推动力折扣等于再它后面并且和它在同一高度的帆的数目所有帆的任意一种位置组合的推动力折扣和等于在该位置下所有帆的推动力折扣的和求所有位置组合最小的推动力折扣和显然有一种贪心方案:设每个位...原创 2019-02-28 16:38:07 · 445 阅读 · 0 评论 -
CodeForces 551E GukiZ and GukiZiana(分块+二分)
题意(摘自洛谷):给出一个数列 a1,a2,...,ana_1,a_2,...,a_na1,a2,...,an,有两种操作:给出 l,r,xl,r,xl,r,x, 令 al,al+1,...,ara_l,a_{l+1},...,a_{r}al,al+1,...,ar 都加上 xxx给出 xxx, 求最大的 j−ij-ij−i 满足 ai=aj=xa_i=a_j=xai=...原创 2019-02-21 10:52:04 · 228 阅读 · 0 评论 -
Codeforces 474F Ant Colony(分块)
发现全网竟没有一篇分块题解。。。原创 2019-02-21 12:43:19 · 200 阅读 · 0 评论 -
HDU 5828 Rikka with Sequence (线段树)
又是一道区间开方的问题不同于“花神游历各国”的是,它要求支持单点加思考“花神游历各国”的方法是否适用如果一个区间最大值开根和最小值开根相同,那么打个下传标记否则暴力更新时间复杂度是多少?当 n=105,m=105,a={1,2,1,2,...,1,2}n=10^5,m=10^5,a=\{1,2,1,2,...,1,2\}n=105,m=105,a={1,2,1,2,...,1,2} 时...原创 2019-02-26 20:34:01 · 176 阅读 · 0 评论 -
POJ 1151 Atlantis (扫描线+线段树)
这是一道模板题,描述了一种叫扫描线的算法题意就是给出一个坐标系和 nnn 个矩形,求面积并,如下图(比较模糊,见谅):原创 2019-02-26 21:01:53 · 294 阅读 · 0 评论 -
Codeforces 455D Serega and Fun(分块)
题意:给出一个长度为 nnn 的序列 a1,a2,...,ana_1,a_2,...,a_na1,a2,...,an,q此操作:将区间 [l,r][l,r][l,r] 循环移位 (al→al+1,al+1→al+2,...,ar→al)(a_l\rightarrow a_{l+1},a_{l+1}\rightarrow a_{l+2},...,a_r\rightarrow a_l)(...原创 2019-02-21 16:54:49 · 660 阅读 · 0 评论 -
0x41 [NOI2010] 程序自动分析 (并查集)
NOI大水题, 直接并查集维护是否相等就行了注意要先处理等于再处理不等数组稍微开大一些哦对还有离散化#include &lt;map&gt;#include &lt;set&gt;#include &lt;ctime&gt;#include &lt;queue&gt;#include &lt;stack&gt;#i原创 2019-02-05 15:55:44 · 362 阅读 · 0 评论 -
0x41 [NOI2002] 银河英雄传说 (并查集)
都是些原来做过的题,发现是Pascal代码不敢放就再打了一遍水直接记录一下每个元素的头在哪里用并查集维护就行了#include &lt;map&gt;#include &lt;set&gt;#include &lt;ctime&gt;#include &lt;queue&gt;#include &lt;stack&gt原创 2019-02-05 16:57:53 · 243 阅读 · 0 评论 -
0x41 Parity Game (并查集)
啊哈,这个题有点意思首先我们能够通过前缀和的方式把奇偶性转换一下:如果 S[l...r]S[l...r]S[l...r] 有偶数个111, 那么 sum[l−1]sum[l-1]sum[l−1] 与 sum[r]sum[r]sum[r] 奇偶性相同如果 S[l...r]S[l...r]S[l...r] 有奇数个111, 那么 sum[l−1]sum[l-1]sum[l−1] 与 sum[r]...原创 2019-02-05 20:34:36 · 227 阅读 · 0 评论 -
数列分块入门 1~9 题解
分块大法好!原创 2019-02-06 18:05:40 · 452 阅读 · 0 评论 -
0x42 楼兰图腾 (树状数组)
题目还帮你排好序了,太好了其实这个问题就是个裸的逆序对我们知道如何在一个序列中计算每个数后边有多少个数比他小这样,我们就有一种思路倒序扫描 aaa,利用树状数组求出每个 a[i]a[i]a[i] 后边有多少个数比他大记做 right[i]right[i]right[i]正序扫描 aaa,利用树状数组求出每个 a[i]a[i]a[i] 前边有多少个数比他大记做 left[i]left[i]...原创 2019-02-06 21:29:57 · 165 阅读 · 0 评论 -
[TJOI2009] 开关 (分块)
没有摘要原创 2019-02-07 14:58:10 · 217 阅读 · 0 评论 -
Codeforces 444C DZY Loves colors(分块)
我们维护一个标记表示区间内的数是否全相同即可。如果全相同很容易算出 a,ba,ba,b 数组需要更新多少,打标记即可。否则暴力修改。#include <map>#include <set>#include <ctime>#include <queue>#include <stack>#include <cmath&g...原创 2019-02-21 14:23:41 · 193 阅读 · 0 评论 -
Codeforces 13E Holes(分块)
题意:一条直线有 nnn 个洞每当一个球掉进洞中时,回弹到后面距它 lil_ili 的洞中或者直接被弹飞,要求支持两种操作:修改某个洞的弹力 lil_ili询问小球进入某个洞后,被弹几次之后会飞出,飞出之前进入的最后一个洞是什么。将序列分成 n\sqrt nn 个块,对于每个位置 iii 我们记录从每个位置开始跳出这个块需要的时间 tit_iti 和跳到的位置 nxt...原创 2019-02-21 15:16:55 · 227 阅读 · 0 评论 -
Bzoj 2821 作诗 (分块)
有 nnn 个数, mmm 组询问,每次问 [l,r][l,r][l,r] 中有多少个数出现正偶数次。强制在线数据范围 1≤n,m,ai≤1051 \le n,m,a_i \le 10^51≤n,m,ai≤105原创 2019-02-21 16:30:22 · 140 阅读 · 0 评论 -
Codeforces 785E Anton and Permutation(分块)
当交换 O(ax,ay)O(a_x,a_y)O(ax,ay) 时,讨论区间 (x,y)(x,y)(x,y) 对答案的贡献有:加上区间内比 aya_yay 小的个数加上区间内比 axa_xax 大的个数减去区间内比 aya_yay 大的个数减去区间内比 axa_xax 小的个数减去 [ax&amp;gt;ay][a_x &amp;gt; a_y][ax&gt;ay]加上...原创 2019-02-21 16:48:03 · 141 阅读 · 0 评论 -
Bzoj 3252 攻略 (dfs序,线段树)
题意:给出一棵 nnn 个节点的树,根节点为 111 号节点,每个点有一个价值 wiw_iwi要求选出 kkk 条从 111 号节点到叶子的路径,使得这些路径并的价值和最大1≤n,k≤2∗105,1≤wi≤1091 \le n,k \le 2*10^5,1 \le w_i \le 10^91≤n,k≤2∗105,1≤wi≤109首先每次贪心取显然正确那么我们处理出 dfsdfsdfs...原创 2019-02-26 21:13:45 · 382 阅读 · 0 评论