随笔分类 -  算法->分治

摘要:题解 每次按较长边把矩形分成两半,找一个中间轴,轴上的每个点跑一边最短路更新所有的答案 然后把矩形分成两半,递归下去 代码 cpp include define enter putchar('\n') define space putchar(' ') define pii pair define 阅读全文
posted @ 2018-09-01 12:03 sigongzi 阅读(214) 评论(0) 推荐(0)
摘要:题解 这个我们处理出来每一位能变化到的最大值和最小值,包括自身 然后我们发现 $f[i] = max(f[i],f[j] + 1) (mx[j] define enter putchar('\n') define space putchar(' ') define pii pair define f 阅读全文
posted @ 2018-08-20 09:37 sigongzi 阅读(175) 评论(0) 推荐(0)
摘要:题解 我写的应该有bug但是我懒得改了 就是最后一次合并的n要么是0点边集的最后一条边,要么是0点边集最后两条边的差,我们分别拎出来判断一下哪个可行(也许两个都可行,但是我不想多做修改了……) 然后递归处理两边…… 代码 阅读全文
posted @ 2018-08-17 17:48 sigongzi 阅读(416) 评论(0) 推荐(0)
摘要:题解 题目太丧,OJ太没有良心,我永远喜欢LOJ! (TLE报成RE,垃圾洛谷,我永远喜欢LOJ) 好的,平复一下我debug了一上午崩溃的心态= =,写一写这道题的题解 把所有限制去掉,给出一个值,和一堆数种选一个异或起来求最大值,是一个经典的字典树问题,如果去掉了d的限制,我们类似主席树那样求一 阅读全文
posted @ 2018-06-07 11:32 sigongzi 阅读(173) 评论(0) 推荐(0)