随笔分类 -  基础算法——搜索

摘要:"LOJ" 感觉这个题十分好玩于是诈尸更博。一年之前的做题心得只有这道题还记得清楚…… 设输入为$n,m$时的答案为$f(n,m)$,首先$f(n,m)=f(m,n)$所以接下来默认$n \leq m$。一件重要的事情是~~打表~~得到当$m n+1$时$f(n,m) = f(n,m 1) 3$,证 阅读全文
posted @ 2019-11-13 22:12 cjoier_Itst 阅读(480) 评论(4) 推荐(3)
摘要:"Contest Page" 因为一些特殊的原因所以更得不是很及时…… A sol 不难发现当某个人diss其他所有人的时候就一定要被删掉。 维护一下每个人会diss多少个人,当diss的人数等于剩余人数$ 1$的时候放队列里,每一次取队头更新其他人diss的人数。 "code" B sol 一个结 阅读全文
posted @ 2019-10-03 22:58 cjoier_Itst 阅读(588) 评论(0) 推荐(1)
摘要:搞学科十分舒适 一双木棋 搜索,在搜索的过程中使用哈希记录重复的状态,每一次枚举合法的放置位置往下递归,取当前所有可行状态中的最优解即可。 include using namespace std; int read(){int a; cin a; return a;} namespace flow{ 阅读全文
posted @ 2019-09-07 14:44 cjoier_Itst 阅读(533) 评论(2) 推荐(0)
摘要:这鬼家伙已经咕了好久了…… SDOIR2的题目挺好玩的~ "快速查询" (???) 不难发现所有的操作都可以通过区间打Tag实现 那么可以维护两个标记$a,b$表示序列中的数为$x$时实际表示的值是$ax+b$。对于一个单点赋值操作把值$x$变为$(x b)a^{ 1}$放进数组里面,对于全局赋值操 阅读全文
posted @ 2019-06-08 21:26 cjoier_Itst 阅读(444) 评论(0) 推荐(1)
摘要:TJOI出一堆模板题还玩一堆梗是什么鬼 "甲苯先生的字符串" (矩阵快速幂) 矩阵快速幂模板题 "代码" "甲苯先生的滚榜" (树状数组、线段树) 最开始想平衡树搞,但是~~平衡树太难写了~~ 一次答案的查询相当于查询比当前的人AC数多的人数+和当前的人AC数一样多,但是罚时更少的人。前者可以使用树 阅读全文
posted @ 2019-05-05 17:42 cjoier_Itst 阅读(729) 评论(7) 推荐(0)
摘要:"异或粽子" (可持久化Trie、堆) 超级钢琴+可持久化Trie???~~HNOI D1T1怎么不出这种送分题啊~~ "代码" "字符串问题" (SAM、记搜) 一切字符串问题用SAM就完事了 把原串reverse,这样“某个$A$串是前面的$A$串支配的$B$串的前缀”的条件变成了后缀。而以某个 阅读全文
posted @ 2019-04-12 10:28 cjoier_Itst 阅读(539) 评论(4) 推荐(0)
摘要:"传送门" 题意差评,其实就是一个递推式:$f_1 = 1 , f_i = \sum\limits_{j=2}^i f_{\lfloor \frac{i}{j} \rfloor}$,然后求$f_N$的值 首先$\lfloor \frac{i}{j} \rfloor$只有$2\sqrt{i}$种取值, 阅读全文
posted @ 2019-02-28 14:20 cjoier_Itst 阅读(349) 评论(0) 推荐(0)
摘要:HNOI2017 "单旋" (线段树、set) 手玩旋转操作(忽略手玩过程)可以发现:一次单旋对原树的变化实际上很小。 对于父子关系,单旋最小值会将$Spaly$上最小值变成原来根的父亲,将最小值的点右子树变为它父亲的左子树,单旋最大值相反; 对于$dep$的变化,单旋最小值时,除了最小值点和它的右 阅读全文
posted @ 2019-02-21 22:26 cjoier_Itst 阅读(535) 评论(4) 推荐(0)
摘要:"传送门" 首先数据范围很假 当$N + M 1 K$的时候就无解 所以对于所有要计算的情况,$N + M \leq 11$ 超级小是吧,考虑搜索 对于每一个格子试填一个数 对于任意道路上不能存在两个相同颜色的限制使用状态压缩进行判断 一些必要的剪枝: ①如果当前可以放的颜色比路径长度要短,表示剩余 阅读全文
posted @ 2019-01-27 08:35 cjoier_Itst 阅读(1394) 评论(0) 推荐(0)
摘要:"传送门" $N \leq 20$很适合暴搜…… 第二问最大独立集裸题,$O(2^NN)$的算法都能过…… 考虑第一问,使用搜索寻找可行解 每一次枚举一条弦的两个端点,通过位运算计算与其相交的弦的数量进行剪枝 一些其他的剪枝: ①两个非$0$值中间的所有$0$的地位是一样的,所以可以将这些$0$缩成 阅读全文
posted @ 2019-01-26 09:59 cjoier_Itst 阅读(259) 评论(1) 推荐(0)