摘要: /plasticboy/vim markdown: zR:打开所有标题 zM:折叠所有标题 zA:打开当前标题 zC:折叠当前标题阅读全文
posted @ 2018-09-13 09:11 pechpo 阅读(22) 评论(0) 编辑
摘要: 需要按二段方向键的跳跃: 中途松开方向键的跳跃: 中途按下方向键的跳跃: 意想不到的小跳(如果上方有墙,小跳比大跳磕头跳的更远)(kid站的是最后的位置): 意想不到的小跳 2: 意想不到的小跳 3(如果上方有墙,小跳比大跳磕头跳的更远): 此类三个刺的情况,不能尝试找空隙跳,必须硬从刺上面怼过去:阅读全文
posted @ 2018-09-08 11:25 pechpo 阅读(24) 评论(0) 编辑
摘要: 常用算法设计和优化策略(本蒟蒻不定期更新) 下面是紫书上讲的常用算法设计策略和优化策略: 分治法:将问题分成相同的独立子问题求解。在普通的分治之外,还有一种cdq分治,思想是处理左边区间到右边区间的影响,归并算一个例子。 动态规划 第一种用法 本质是:对于一个问题,通过定义状态来 分解问题 。利用状阅读全文
posted @ 2018-03-01 23:14 pechpo 阅读(112) 评论(0) 编辑
摘要: 震惊!dp还能这样用 c++ include include include using namespace std; const int maxn=55, maxm=305, INF=0x3f3f3f3f; int n, m; struct Edge{ int to, nxt, v; }e[max阅读全文
posted @ 2018-10-10 16:14 pechpo 阅读(6) 评论(0) 编辑
摘要: 公约数 问n个数的所有子集的gcd和。$1 \le n \le 1000000$ 首先想的是一个二维 【可怜】 正解是对于一个公约数 ,统计出 正好是它的子集个数 。可以用容斥来搞。 具体来说, 正好是 的子集个数就是$2^{x的倍数的个数} f[kx]$ c++ include include u阅读全文
posted @ 2018-10-06 15:55 pechpo 阅读(4) 评论(0) 编辑
摘要: 魔法弹(线性基) 给出n个m位数,问它们张成的异或集合的大小。 关于线性基,这篇 "博文" 讲的太好了: 所谓线性基,就是线性代数里面的概念。一组线性无关的向量便可以作为一组基底,张起一个线性的向量空间,这个基地又称之为线性基。这个线性基的基底进行线性运算,可以表示向量空间内的所有向量,也即所有向量阅读全文
posted @ 2018-10-05 15:46 pechpo 阅读(11) 评论(0) 编辑
摘要: 玩♂游戏 给出一张除了1和n的点度数都为2的图。每次两人轮流拿一个边权。当从1不能到n时上一个拿的人输。问先手是否必胜。 首先,多条链的情况一定会转换成一条链的情况。由于没人会去拿1,当边权和为偶数时,链有奇数条边先手赢,否则后手赢。 因此,边权和为偶数时,先手希望奇数链多。后手希望偶数链多。反之则阅读全文
posted @ 2018-09-29 13:09 pechpo 阅读(10) 评论(0) 编辑
摘要: 管道维修 n m个格子,每个格子有$p_{ij}$的概率堵上。如果一个格子堵上了,那么清理它需要一步。只有当一个格子与外部相联通且被疏通时,你可以去清理它周围的格子。问每一个格子被清理完的期望步数。 颠覆了我对期望题的认知……原来此题非期望dp,而是直接从期望的定义出发。$n^3$预处理即可。 c+阅读全文
posted @ 2018-09-25 15:59 pechpo 阅读(12) 评论(0) 编辑
摘要: photo 小明在旅游的路上看到了一条美丽的河,河上有许多船只,有的船只向左航行,有的船只向右航行。小明希望拍下这一美丽的风景,并且把尽可能多的船只都完整地拍到一张照片中。 小明位于河的边上,并且可以在河边的任意位置进行拍照,照相机的视野恰好为$90$度角,只能以垂直于河边的方向进行拍照。河上的船只阅读全文
posted @ 2018-09-17 16:33 pechpo 阅读(10) 评论(0) 编辑
摘要: 一点经验:压位以后,在2^x进制上的操作和在2进制上的操作,结果都是一样的!阅读全文
posted @ 2018-09-14 14:21 pechpo 阅读(8) 评论(0) 编辑
摘要: /plasticboy/vim markdown: zR:打开所有标题 zM:折叠所有标题 zA:打开当前标题 zC:折叠当前标题阅读全文
posted @ 2018-09-13 09:11 pechpo 阅读(22) 评论(0) 编辑
摘要: 二分 忽然发现自己并写不对二分……先贴个知乎 "链接" 。 正如最高位答主所言——“有多少种写法都不重要,重要的是要会写一种对的。” 怎么写一种 对的 二分查找呢? 首先,我们要保证程序不会死循环。因此,当我们分开区间时,要保证区间被正好分成两半。例如,如果当前区间长度为2,就必须把区间分成两个长度阅读全文
posted @ 2018-09-12 18:58 pechpo 阅读(14) 评论(0) 编辑
摘要: 保护 给出一棵树,若干条树上路径。若干次询问某一点到根的路径上,被覆盖次数大于等于k的点的最浅深度。 把lca标记打到x点和y点的深度线段树上,那么从下往上线段树合并即可。当然,用主席树从上往下合并也可。 c++ include include using namespace std; const 阅读全文
posted @ 2018-09-12 16:03 pechpo 阅读(12) 评论(0) 编辑