随笔分类 - 其他
摘要:如果做过起床困难综合征的话应该很快就能有思路,没做过那道题的话还真是挺费劲的. 我们不知道要带入的值是什么,但是我们可以知道假设带入值得当前位为 $1$ 时这一位在经过位运算后是否为 $1$. 至于这个怎么维护,我们开两个变量 $f0,f1$ 代表初始带入全 $0$,全 $1$ 时每一位得值. 然后
阅读全文
摘要:感觉这个思路非常巧妙啊~ code: 线段树版(可以改装改装加个单点修改之类的) code:
阅读全文
摘要:题意:支持两种操作:$1.$ 查询 $[l,r]$ 每个数字出现次数的 $mex$,$2.$ 单点修改某一位置的值. 这里复习一下带修改莫队. 普通的莫队中,以左端点所在块编号为第一关键字,右端点大小为第二关键字,在带修改莫队中每一个操作都有一个时间戳,那时间戳就是第三关键字. 可以将数字先离散化,
阅读全文
摘要:题意: 给定序列 $a,m$ 次询问,每次询问给出 $t,k$. 求 $a_{t}+a_{t+k}+a_{t+2k}+.....a_{t+pk}$ 其中 $t+(p+1)k>n$ 题解: 这种跳步数问题可以用根号分治来解决: 对于 $k$ 比较大的询问直接暴力跳,而对于 $k$ 较小的部分就通过预处
阅读全文
摘要:现在看这道题也不难啊,不知道考场上为啥没切~ code:
阅读全文
摘要:题中只有两个条件:任意区间异或值不等于0或m. 如果只考虑区间异或值不等于 0,则任意两个前缀异或值不能相等. 而除了不能相等之外,还需保证不能出现任意两个前缀异或值不等于m. 即 $xor[i]$^$xor[j]!=m$, $\Rightarrow$ m^xor[j] 这个异或前缀就不可以再次出现
阅读全文
摘要:十分玄学的数据结构~ code: #include <bits/stdc++.h> #define N 1000006 #define setIO(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout) using namespace std
阅读全文
摘要:模拟赛的T2,多敲了两行成功爆掉~ 写线段树合并的时候一定要注意一下不能随意新开节点. code:
阅读全文
摘要:题意:给定一棵树,树上有一些点是警察局,要求所有点到最近的警察局的距离不大于 $d$,求最多能删几条边 ? 题解: 考虑什么时候一条边可以被断开:这条边的两个端点被两个不同的警察局覆盖掉. 我们要设计一种染色方案,使得整棵树都被覆盖,且每个警察局覆盖的范围尽量小. 那么,我们可以使用 $BFS$ 算
阅读全文
摘要:这个模型十分巧妙啊,好题好题~ code:
阅读全文
摘要:给定一张 $n$ 个点 $m$ 条无向边的图(无重边) :定义一种行走方案为:$m-2$ 条边走 $2$ 次,其余 $2$ 条边只走一次. 两个行走方案不同,当且仅当走一次的两条边中有不同的. 一条边走两次不好处理,可以将每条无向边拆开,然后将问题转换成:有多少种方案使得图中两条边不走的一笔画? 我
阅读全文
摘要:题意:对于一个序列,假如说一个区间内最多能包含 $k$ 个不同的数,那么这个序列最少会被划分成几个区间 $?$ 输出 $k$ 为 $1\sim n$ 的答案. 我们每次选区间一定是贪心地将这个区间选地越大越好. 这道题有一个非常显然的主席树做法:从后向前扫,维护每一种数字出现最靠左位置,然后用主席树
阅读全文
摘要:正确的贪心方法:按照比例排序. code:
阅读全文
摘要:题目链接:https://www.luogu.org/problem/CF1228C 问题可以转化为:求质数 $p$ 在 $1\sim n$ 中的每个数中的次幂之和. 因为 $p$ 是一个质数,只能由 $1$ 乘以 $p$ 表示出来,所以可以将问题转化为求 $p$ 在 $n!$ 中出现的次幂. 我们
阅读全文
摘要:挺好的一道题. 假设连了 $i$ 条边且恰好连成了一棵树. 那么下一条连边有 3 种情况:1.连接两个不连通的点. 2.连接的两个点联通,且能构成奇环. 3.连接的两个点联通,能构成偶环. 对于情况1,直接将两个点相连即可. 对于情况2,显然这个奇环存在的时间为 $[s_{i+1},\min_{E
阅读全文
摘要:你发现染 $k$ 次最多会将这个序列分成 $2k-1$ 段,然后任何 $2k-1$ 段以内的方案一定能被构建出来,所以直接 dp 就好了
阅读全文
摘要:非常巧妙的动态规划. 你会发现每一个区间地颜色种类不能超过 $\sqrt n$, 所以可以直接枚举区间颜色种类. 令这个为 $pos[j],$ 然后考虑如何去更新这个东西就行了. Code:
阅读全文
摘要:Code: #include <bits/stdc++.h> #define N 50001 #define ll long long #define lson now<<1 #define rson now<<1|1 #define inf 1000000000 #define setIO(s)
阅读全文
摘要:把之前写的版本改了一下,这个版本的更好理解一些. 特地在一个链的最底端特判了一下. code: #include <bits/stdc++.h> #define N 200005 #define ll long long #define inf 10000000005 #define lson p[
阅读全文
摘要:发现每一次 $[b[i]+1,n-a[i]]$ 这个区间的分数必须相同,否则不合法. 而一个相同的区间 $[l,r]$ 最多只能出现区间长度次. 于是,就得到了一个 $dp:$ 将每一种区间的出现次数看作是价值,要选出若干个互不相交的区间使得价值最大. 这个直接用树状数组优化 dp 跑一下就行了~
阅读全文

浙公网安备 33010602011771号