- 博客(5)
- 收藏
- 关注
原创 【BZOJ1857】【SCOI2010】传送带(三分套三分)
三分的第一道入手题。 三分是个什么样的东西呢?我用一个例题来解释: 给你一段序列,保证有且仅有一个位置 iii,使得 iii 左边的序列单调递增,iii 右边的序列单调递减,请你找出这个位置 iii 这个问题形象的解释就是有一座山峰,问你这座山峰的最高点在哪里。 那么我们可以用到三分法来解决。三分像二分一样,有一个询问区间 lll、rrr,也就是我们确定答案就在这个区间内。我们每次先像二分一样...
2020-01-26 17:47:43 190
原创 UVA12003 Array Transformer(分块,块内二分)
我们考虑用分块来水过此题 我们先将原序列进行分块,对于某个块 BBB 内的数,我们把它们放进一个数组 block[B][ ]block[B][\ ]block[B][ ] 里,再对数组进行排序。那么我们就得到了 n\sqrt{n}n 个有序数组 block[ ][ ]block[\ ][\ ]block[ ][ ]。 然后对于修改操作,...
2020-01-17 14:18:42 150
原创 UVA11297 Census(kd-tree)
题意:给定一个 n×nn\times nn×n 的网格,要求支持修改和询问某个矩阵的最大值和最小值。 解法多样,可以用二维线段树,我用的是 kd−treekd-treekd−tree。 那么这题就很裸了,我在这里只提几点需要注意的地方。 首先就是建树以及修改时的比较一定要判断当前维度相等的情况,这时就要比较下一维度。 不然你修改时可能永远找不到你要找的那个点,导致 TLETLETLE。 其次是 u...
2020-01-17 11:50:28 127
原创 【BZOJ3489】A simple rmq problem(kd-tree)
先考虑怎么样才能保证某个数只出现了一次。 对于序列中的某个数 a[i]a[i]a[i],我们求出上一个出现 a[i]a[i]a[i] 的位置为 pre[i]pre[i]pre[i],下一个出现 a[i]a[i]a[i] 的位置为 nxt[i]nxt[i]nxt[i]。 那么当询问的 lll、rrr 满足 pre[i]<l⩽ipre[i]<l\leqslant ipre[i]<l⩽...
2020-01-15 17:03:21 198
原创 UVA10384 推门游戏 The Wall Pushers(IDA*,A*)
题目大意 给你一个 4×64\times 64×6 的网格图,网格边缘上可能有墙。对于每一个网格有一个权值 valvalval,其中 val=1(如果这个网格左边缘(西边缘)有墙)+2(如果这个网格上边缘(北边缘)有墙)+4(如果这个网格右边缘(东边缘)有墙)+8(如果这个网格下边缘(南边缘)有墙)\begin{aligned}val= & & 1(\text{如果这个网格左边缘(...
2020-01-14 11:43:50 215 2
空空如也
C++ 类模板的简单问题
2022-10-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人