随笔分类 - 其他 - 思维题
摘要:题意:给定一颗 $n$ 个节点的树,定义 $dis(x,y)$ 为树上点 $x$ 到 $y$ 的路径经过的边数. 定义一个点集 $S$ 的 $f(S)$ 为 $f(S)=max\left \{dis(x,y)|x,y\in S\right \}$ $,|S|\geqslant2$ 求:对于 $i$ 
        阅读全文
                
摘要:如果做过起床困难综合征的话应该很快就能有思路,没做过那道题的话还真是挺费劲的. 我们不知道要带入的值是什么,但是我们可以知道假设带入值得当前位为 $1$ 时这一位在经过位运算后是否为 $1$. 至于这个怎么维护,我们开两个变量 $f0,f1$ 代表初始带入全 $0$,全 $1$ 时每一位得值. 然后
        阅读全文
                
摘要:感觉这个思路非常巧妙啊~ code: 线段树版(可以改装改装加个单点修改之类的) code:
        阅读全文
                
摘要:题意: 给定序列 $a,m$ 次询问,每次询问给出 $t,k$. 求 $a_{t}+a_{t+k}+a_{t+2k}+.....a_{t+pk}$ 其中 $t+(p+1)k>n$ 题解: 这种跳步数问题可以用根号分治来解决: 对于 $k$ 比较大的询问直接暴力跳,而对于 $k$ 较小的部分就通过预处
        阅读全文
                
摘要:题中只有两个条件:任意区间异或值不等于0或m. 如果只考虑区间异或值不等于 0,则任意两个前缀异或值不能相等. 而除了不能相等之外,还需保证不能出现任意两个前缀异或值不等于m. 即 $xor[i]$^$xor[j]!=m$, $\Rightarrow$ m^xor[j] 这个异或前缀就不可以再次出现
        阅读全文
                
摘要:模拟赛的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 跑一下就行了~
        阅读全文
                
摘要:联通块个数等于 $n$ 减掉关键边个数. 这里定义关键边为:能连接两个连通块的边. 由于强制在线,我们考虑用一种数据结构维护以 $r$ 为右端点的答案. 考虑已经构建好 $1$ ~ $r-1$ 的图,那么假如 $r$ 时分两种情况: 1. $r$ 连接的两个点没有联通,那么就将这两个点连上. 2. 
        阅读全文
                
摘要:发现让 $b$ 更大的越靠前越优,然后依次决策将每个人分给哪个窗口. 令 $f[i][j]$ 表示考虑了前 $i$ 个人,且第一个窗口的总等待时间为 $j$ 的最小总时间. 然后转移一下就好了~
        阅读全文
                

浙公网安备 33010602011771号