上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 22 下一页
摘要: link 和NOI2021的轻重链那道题写法上几乎一样,可以看成是轻重链是这道题套了个外壳。这道题问法还更直接一点,除了维护的东西变成了不相同的相邻元素对的个数,其它的代码层面几乎是一样的。然而傻逼的我还是调了许久。一是树链剖分线段树的初值应该是对应id的值,二是edge数组应该开成两倍。我也不知道 阅读全文
posted @ 2022-07-04 17:23 Feyn618 阅读(20) 评论(0) 推荐(0) 编辑
摘要: link 去年NOI的D1T1。其实感觉也没有那么难。 主要是如何快速修改路径上点的非路径连边。一个一个修改是不可能的,只能把边的修改转化成点的修改。于是想到每次修改都给路径上的点赋一个从未出现的颜色值,这样一来路径边和其它边就区分出来了:路径边的两端颜色相同,而其它边则两端颜色不同(这就体现出找从 阅读全文
posted @ 2022-07-04 17:17 Feyn618 阅读(21) 评论(0) 推荐(0) 编辑
摘要: link 要求写一个数据结构,支持区间加,区间翻转,查询区间最大值。 没有动态插入和动态删除我不是很认可,还什么“序列终结者”,常用的都没有包含完。 就是板子。要注意的是一个点的最大值等于左右孩子的最大值和自己的data再取一次最大值(我也不知道当时脑子是怎么抽掉的)。另外就是pushup和push 阅读全文
posted @ 2022-07-04 11:03 Feyn618 阅读(22) 评论(0) 推荐(0) 编辑
摘要: link 要求写一个数据结构,支持区间删除、区间插入,区间查询。这不是平衡树是什么。 坑点有点多。首先空格也会被当成是一种文本输入并存储,调试的时候我一度认为是哪里出bug了(data一栏是……啥都没有?|)。还有就是数组要开大一点,不知道为什么要开到2e6。然后就是在做区间插入的时候最好把插入的序 阅读全文
posted @ 2022-07-04 09:37 Feyn618 阅读(15) 评论(0) 推荐(0) 编辑
摘要: link 一道并不难的贪心题。 首先会发现这k次机会肯定是用在一个元素身上最好啊,反正是按位或,最大的那个数肯定是越大越好。但是不是把最大的数拎出来然后给它机会呢?交了一发死得很惨。前半段的贪心是正确的,但后半段有问题。于是可以枚举得到机会的元素是哪个,然后暴力(维护前后缀即可)求出答案,取最大值即 阅读全文
posted @ 2022-07-03 22:09 Feyn618 阅读(27) 评论(0) 推荐(0) 编辑
摘要: link 题意是:写一个数据结构,支持区间翻转,支持查找元素位次,支持删除。这就是平衡树的板子嘛,而且甚至没有插入操作。这就好办啦,我写的是splay,最近重拾平衡树代码也打得愈发顺手了…… 鉴于昨天打维护序列打崩溃,总结一下关于区间翻转的几个重要的点。一个是在调用任何节点时(特别是find)一定要 阅读全文
posted @ 2022-07-03 22:06 Feyn618 阅读(22) 评论(0) 推荐(0) 编辑
摘要: link 一道奇怪的构造题。还以为比较困难,结果解法十分简单粗暴。kang完题解直呼咋这么暴力啊。 就很朴素的想法。假如每个元素都只有一个连通块,那很简单,直接输出四个大大的方阵即可。但很明显出题人没有这么善良,那么我们需要做的就是去其它地方挖出一些连通块来。最简单的方法就是隔一个方块挖一个连通块, 阅读全文
posted @ 2022-07-03 21:59 Feyn618 阅读(55) 评论(0) 推荐(0) 编辑
摘要: link 挺水一题。 由于不强制在线,可以把所有操作读入之后,把最后的数组处理出来了再考虑答案(主要是平衡树动态维护LIS一时没想到怎么做)。显然有结论,第i次的答案可以看成是最后数组剔除掉所有大于i的数剩下的序列的LIS,而所有大于i的数是不会被小于等于i的数吸纳的,所以第i次的答案相当于是最后数 阅读全文
posted @ 2022-07-02 17:29 Feyn618 阅读(12) 评论(0) 推荐(0) 编辑
摘要: link 平衡树的一点小变通。 要求支持一些操作:询问序列第k个元素是什么,询问元素k在序列中的位置,把一个元素放到序列最前面或最后面,交换两个元素($insert$ 操作说白了就是交换这个元素和它前面或后面的元素交换)。 第一个和最后一个还好,其它操作有点麻烦。问题就在于要把节点的点值和节点的编号 阅读全文
posted @ 2022-07-02 16:43 Feyn618 阅读(6) 评论(0) 推荐(0) 编辑
摘要: link 一道很有价值的DP题,而且运用了根号分治的思想。 假如数据范围不大,就像sub1一样,可以直接把可能出现的所有质数压到一个int上之后,用 f[i][j] 来代表第一个人吃了集合i的质数,第二个人吃了集合j的质数时的方案数。使用刷表法从前往后更新,每个数有选和不选两种决策,注意取模和龙龙宝 阅读全文
posted @ 2022-07-02 15:03 Feyn618 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 树上差分有两种形式,一种是自上而下的,通过给子树树根赋值来影响整个子树,获取答案的时候从父亲处获取;一种是自下而上的,通过给某个点和它的某个祖先赋值来影响一条链,获取答案的时候要加上孩子的值。脑残了。 阅读全文
posted @ 2022-07-01 17:22 Feyn618 阅读(13) 评论(0) 推荐(0) 编辑
摘要: link 只在UOJ上找到了。考试的时候一脸懵逼,到现在找规律,发现可以 $O(1)$ 两行水过。 #include<cstdio> int main(){int m,n;scanf("%d%d",&m,&n);printf("%d",m==1?1:(n<m-n+1?n:m-n+1)*2);} 但为 阅读全文
posted @ 2022-07-01 15:05 Feyn618 阅读(37) 评论(0) 推荐(0) 编辑
摘要: link 题意是给定一个无向图,边有边权。求解一条连接指定两个点的路径使得路径上最大边和最小边的比值最小。 很明显发现边数很小,甚至可以 $O(M^2)$ 跑过去。于是考虑每次枚举最短边,然后递增地枚举比它长的边一直到指定的两个点联通为止。考场上脑抽了写了个dfs,为了实现它还在删边上耗费了点时间。 阅读全文
posted @ 2022-07-01 13:35 Feyn618 阅读(23) 评论(0) 推荐(0) 编辑
摘要: link 又是一道虚高的紫题。 题意是说给定一棵树,树上一些点为特殊点,求到所有特殊点的距离均不超过给定值的点的个数。 换根的板子。对于每个点维护在子树内离自己最远的特殊点和第二远的特殊点,用 $O(N)$ 的时间求出根节点的信息;然后二次换根,每个节点考虑父亲的最远点是否来自自己的子树,如果是就取 阅读全文
posted @ 2022-06-30 19:58 Feyn618 阅读(26) 评论(0) 推荐(0) 编辑
摘要: link CF的题总是很良心的。比如这道题完全够不到紫题的难度,充其量一个绿题嘛。就是一个倍增,同时维护元素和和元素最小值的倍增数组,一次询问就可以了。 注意要开long long,而且CF上要用 printf("%I64d"); 输出long long。 代码异常简单。 #include<bits 阅读全文
posted @ 2022-06-30 19:53 Feyn618 阅读(28) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 22 下一页