随笔分类 -  Noip

摘要:对于每个点,有效的反转次数不会超过2,所以只要求出每个点的反转次数,加上其本身的0/1,再对2取模,就是这个点现在的颜色 问题来了,如何求某个点的反转次数呢?可以逆向思维,先把每个点的反转次数存在数组fli中,某个点的反转次数等于 其本身反转次数以及上下左右四个点的反转次数之和 (能对这个点有影响的 阅读全文
posted @ 2018-10-28 21:33 Zolrk 阅读(110) 评论(0) 推荐(0)
摘要:题目大意是,判断一个有向图中所有的任意两点x,y,是否满足,从x可以走到y 或者 从y可以走到x 很显然,同一个SCC中的所有点一定满足这个条件,当同一个SCC中的所有点要么同时选要么同时不选的时候,就可以缩点了。缩点的方法就是给每个点加一个强联通分量编号(染色),然后tarjan结束后考察每一条边 阅读全文
posted @ 2018-10-28 21:31 Zolrk 阅读(118) 评论(0) 推荐(0)
摘要:先说一个没有滚动数组的版本 对于A串的一个字符,只有选和不选两种可能,选是一种方案,不选也是一种方案 设$f(i,j,k)$ 为A串的前 i 项在 分离出 第k个子串 时 成功匹配到B串的前 j 项时 选择 A串第i项的方案数 还需要加上A串第i项不选择的方案 设$s(i,j,k)$ 为A串的前 i 阅读全文
posted @ 2018-10-28 21:29 Zolrk 阅读(129) 评论(0) 推荐(0)
摘要:记忆化搜索也是实现dp的一种,有时候可能比状态转移方程推过去复杂,但有时候因为是直接去搜索,反而降低了思维难度 就用01背包来练练手(设c为容量,w为重量,v为价值) 记忆化搜索 是在搜索的基础上,进行优化,跳过打开相同的子树,从而避免大量的重复计算。因为在搜索的时候可能会再次dfs到一个已经到过的 阅读全文
posted @ 2018-10-28 21:28 Zolrk 阅读(464) 评论(0) 推荐(0)
摘要:两个问题都需要按照 每个节点的相邻点 来思考解法。 把符合题目要求的,可产生联合权值的有序点对,称为 联合点 。 第一问 每个节点的子节点(相邻点)之间,彼此组成联合点,具体看图。 可以比较每个节点的相邻点的权值,得到最大子节点和次大子节点。 他们的联合权值就是这个节点所能 发现 的最大联合权值。 阅读全文
posted @ 2018-10-28 21:27 Zolrk 阅读(171) 评论(0) 推荐(0)
摘要:注意这X家不一定连续,并且输入中给定的就是第i家到入口的距离 先想只有一个的情况,扫一遍,找到其中最大的那个(路径要乘上2) 两个的呢?不大好想,不如想想n个的时候,情况最简单,那么从n到n 1的转移也很简单 考虑把过程反过来,一个个删点,每次删使得答案变化最小的点 现在问题是 快速找出区间内对答案 阅读全文
posted @ 2018-10-28 21:20 Zolrk 阅读(132) 评论(0) 推荐(0)
摘要:这种矩形问题常用单调队列优化枚举(通过贪心取最优降低了一个维度的枚举) 推荐这道题也要做一做:[\[ZJOI2007\]棋盘制作][1] 单调队列的空间记得开大点! 反正内存够用 注意,这题正方形边长是固定的! 暴力算法是枚举上边界所在的行,左边界所在的列,通过这两个个信息确定一个正方形,然后预处理 阅读全文
posted @ 2018-10-28 09:48 Zolrk 阅读(131) 评论(0) 推荐(0)
摘要:网上其他人的博客写的都非常棒,我自己也只是有点明白,就放个模板吧。。。 从1开始存的字符串 假设要从B串中找好多个A串 想理解kmp就得明确数组的定义:nxt[i]表示A串中以i结尾的非前缀子串 与 A的前缀子串 能够匹配的最大 长度 下面的代码为什么是j+1,不模拟一遍根本无法理解 我个人认为,j 阅读全文
posted @ 2018-10-26 17:11 Zolrk 阅读(118) 评论(0) 推荐(0)
摘要:我写线段树的时候因为不想用define所以先写好一行 然后复制下来,每次用的时候粘贴。。。 注意输入的值有负数,求最值的时候注意点。。。 c++ include include include include include using namespace std; define debug(x) 阅读全文
posted @ 2018-10-22 21:26 Zolrk 阅读(134) 评论(0) 推荐(0)
摘要:首先做一下预处理,一般都是DP(递推)处理 对于给定数来说,那些位数比他少的数字一定对他的答案有贡献 所以无需考虑这些位数少的数是否超越给定数,因而可以直接把全部贡献都算上 这个时候预处理就发挥作用了,假设这个数n是4位数吧,那么预处理出0 ~ 999中,每个数码出现的次数 考虑DP(递推)处理(大 阅读全文
posted @ 2018-10-22 15:35 Zolrk 阅读(207) 评论(0) 推荐(0)
摘要:注意: 矩阵存图,遍历边的时候首先确定边存在,即g[u][v]要有值,无值说明这条边不存在,不应该用来更新最短路 他问的是公共路径最长能有多长,就是尽量让两条路的公共路径长度之和最大,别理解错题意,比如说题目背景里面的描述是:一起走的时间尽可能的长。 看起来貌似两个人以相反的路径走过相同的一段路不算 阅读全文
posted @ 2018-10-20 20:36 Zolrk 阅读(164) 评论(0) 推荐(0)
摘要:注意几点 1.看清楚是有向还是无向图 2.dis初始值设为0x3f3f3f3f可能会不够 还是设为0x7fffffff吧,具体来说你要看题目给的范围,若是说边权和 include include include const int MAXN = 100000 + 10; const int MAXM 阅读全文
posted @ 2018-10-18 19:28 Zolrk 阅读(216) 评论(0) 推荐(0)
摘要:fhq treap多么强劲。。。 当用无旋treap解决区间/序列问题时,其实每个点所存的值不再对树的形态产生影响,复杂度由随机优先级和堆结构来保证。这棵 树不是以点的值为关键字,只是按照操作把一些点进行了修改 ,使得任何时候对这棵树进行中序遍历,都能得到最新的书架(序列)状态 在节点中,存下书的编 阅读全文
posted @ 2018-10-18 14:49 Zolrk 阅读(226) 评论(0) 推荐(0)
摘要:平衡树维护被毁坏的房子就好了 set可以水过。。。注意边界问题 c++ include include include include include include include using namespace std; define debug(x) cerr 阅读全文
posted @ 2018-10-18 07:28 Zolrk 阅读(101) 评论(0) 推荐(0)
摘要:只需要相邻两个位置差大于等于2即可 那么对于一个数,我只需要知道他的最高位,以及这个数有多少位(防止超过边界),就可以表示出这个状态了 设f[i][j]表示满足“前i位中最高位的值为j”的windy数有多少个 虽然说不能包含前导0,但是j可以为0吧,比如一个数10234,里面有个0 首先处理出那些不 阅读全文
posted @ 2018-10-17 22:00 Zolrk 阅读(133) 评论(0) 推荐(0)
摘要:先考虑在链上的做法,线段树子节点合并的时候减去重复算的颜色,然后树剖,跨越轻链的时候可以单点查询找颜色(我想的是维护颜色。。。但是明显这个点也是在线段树上的,直接单点查询就好了, 想想问题的本质是什么 ,有没有不那么麻烦的做法) 所以要考虑好一些问题的区间可维护性,然后选用适当的数据结构 比如区间最 阅读全文
posted @ 2018-10-17 18:59 Zolrk 阅读(159) 评论(0) 推荐(0)
摘要:加深了我对割点的理解。。。 当割点判定法则成立时,即low[v] = dfn[u],代表切断u和v这条边后,v会和u分开 若一个点u连接的多条边都有这个法则的成立,则说明删除u点后形成了多个区域 这多个区域两两都不能访问,而这些区域的大小其实就是搜索树中v的子节点 所以要不断更新“目前已经被切割出去 阅读全文
posted @ 2018-10-17 08:51 Zolrk 阅读(176) 评论(0) 推荐(0)
摘要:桥判定法则:无向边(x,y)是桥,当且仅当搜索树上 存在 x 的一个子节点y,满足 $$dfn[x] include include include include include using namespace std; define debug(x) cerr include include i 阅读全文
posted @ 2018-10-17 08:25 Zolrk 阅读(175) 评论(0) 推荐(0)
摘要:st表细节多。。。 用线段树维护也行,会慢一点 最大公约数这个东西区间上是“可加”的 所以可以很方便地合并出区间gcd 注意位运算优先级低,多加括号 c++ include include include include include using namespace std; const int 阅读全文
posted @ 2018-10-16 20:47 Zolrk 阅读(250) 评论(0) 推荐(0)
摘要:费了半天时间玩拓扑排序,然而发现有结论可以直接用: 在一个DAG中,若有且仅有一个点的出度为0,则其他所有的点都可以遍历到这个点,否则图中不存在能被所有的点遍历到的点 证明。。。反证法什么的来一下,感性理解就好了 阅读全文
posted @ 2018-10-15 20:46 Zolrk 阅读(121) 评论(0) 推荐(0)