上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 29 下一页
摘要: 题解 考虑一架飞机飞完自己之后还能飞到哪些航线,用floyd求两点最短路 这个图建出来是个DAG,求最小路径覆盖即可,二分图匹配 注意判断时是航班的起飞时刻+直飞时间+加油时间+最短路时间 代码 cpp include define enter putchar('\n') define space 阅读全文
posted @ 2018-08-27 22:45 sigongzi 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 题解 我冷静一下,话说如果去掉建筑和R的限制好像是模拟退火吧 然后开始写模拟退火了,起始点就随机一个敌人作为起始点 没对着数据写了一下获得了70pts,感到美滋滋 然后对着数据卡了很久……发现有个数据点似乎需要从初始温度小一点的情况开始跳,于是就10次从20000降温,10次从2000降温 AC啦 阅读全文
posted @ 2018-08-27 17:53 sigongzi 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 题解 压的状态是一个二进制位,我们规定1到n的数字互不相同是从小到大,二进制位记录的是每一位和后一个数是否相等,第n位记录第n个数和原串是否相等,处理出50个转移矩阵然后相乘,再快速幂即可 代码 cpp include define enter putchar('\n') define space 阅读全文
posted @ 2018-08-27 16:51 sigongzi 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 题解 就是一个回文串拼上左右两端 类似二分找lcp这么做 可以直接用哈希找回文串 注意要找A串前半部分,B串找后半部分 代码 cpp include define enter putchar('\n') define space putchar(' ') define pii pair define 阅读全文
posted @ 2018-08-26 13:21 sigongzi 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 题解 01分数规划,二分加树背包…… 代码 阅读全文
posted @ 2018-08-26 11:00 sigongzi 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题解 用了一堆迷之复杂的结论结果迷之好写的计算几何???? 好吧,要写立体几何了 如果有名词不懂自己搜吧 首先我们求重心,我们可以求带权重心,也就是x坐标的话是所有分割的小四面体的x坐标 四面体体积的和除以骰子的体积,y,z坐标同理 然后我们把这个骰子四面体剖分,剖分的话就是随便选在骰子内的一个点, 阅读全文
posted @ 2018-08-26 10:32 sigongzi 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 题解 我一开始还努力想这道题是不是有坑,被SDOI折磨到我觉得不能有那么水的题在…… 就是带权并查集维护一下两点间距离,如果新加一条边两个点在同一集合,看看已有的路径和新加的路径是否相等 乘积可以在模意义下维护,多随机几个模数就行 代码 cpp include define enter putcha 阅读全文
posted @ 2018-08-25 15:27 sigongzi 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 题解 少考虑了情况,导致我以为是暴力讨论一次角落移动 de了两天才反应过来……简直降智 事实上,我们把移动分三类,一种是在边界跳过一段,一种是在左上角上左上左上左这样撞墙,在右下角下右下右下右这么撞墙,另一种是左右左右左右这么撞墙 如果你说还有上下上下这么撞墙,就把整个图旋转180度再做一遍dp就好 阅读全文
posted @ 2018-08-25 13:20 sigongzi 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题解 c一样的就是一个独立的游戏 我们对于2和3的指数 sg[i][j] 表示$c \cdot 2^i \cdot 3^j$的棋子,只有这个硬币是反面,翻转的硬币是正面的sg值 枚举sg函数所有可能的局面,每个后继局面的sg值,就是所有被翻到背面的硬币sg值的异或和 我们忽略了反转当前硬币前面可能不 阅读全文
posted @ 2018-08-23 14:14 sigongzi 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 题解 我一直也不会网络流……orz 我们分析下这道题,显然和行列没啥关系,就是想给你n + m个串 那么我们对于非回文单词之外的单词,找到两两匹配的反转单词(即使另一个反转单词不会出现也要建出来) 具体就是我们建一个hash表,遇见一个单词读进来,把这个单词反转之后再存进哈希表里 然后我们把一对反转 阅读全文
posted @ 2018-08-23 10:13 sigongzi 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 题解 按秩合并怎么清数组对我来说真是世纪性难题 我们很熟练地想到点分,如果我们认为某个点到重心是正着读的,由于它的深度固定,它的串也是固定的,我们只要预处理出所有长度正着重复的串,反着重复的串,和它们的哈希值,遍历树的时候只需要记录一下路径字符串的哈希值,比对一下看是否合法就行 为了快一点可以按深度 阅读全文
posted @ 2018-08-22 12:15 sigongzi 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 题解 做后缀自动机题要一点脑洞,脑洞一开,就过了 我们显然要拿第二个串跑第一个串的后缀自动机 我们可以求出第二个串每个位置匹配到的节点,和匹配的长度L 那么我们统计一个后缀树上的根缀和,表示这样个节点的路径字符串的所有后缀在串中出现过多少次(路径字符串就是根到这个点的路径中等于这个节点len值的串) 阅读全文
posted @ 2018-08-21 20:46 sigongzi 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题解 dp[i][j][S]表示区间[i,j]内剩余的数位状压后为S的最大值 这样转移起来不就是$n^3 2^8$了吗 冷静一下,我们可以发现一段区间内剩下的数位的个数是一定的,也就是我们可以在枚举位数上减少一定复杂度 我们转移的时候枚举一个末尾,也就是 $dp[i][j][S] = dp[i][k 阅读全文
posted @ 2018-08-21 17:04 sigongzi 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题解 我对莫队真是一无所知 这个东西显然可以用圆方树转成一个dfs序列 然后呢,用莫队计算每个询问区间的每个数出现的次数,从而顺带计算每个数字的奇偶性 但是我们要查的数字也用一个范围,可以直接用分块维护,修改$O(1)$查询$O(n)$ 代码 cpp include define enter put 阅读全文
posted @ 2018-08-21 12:52 sigongzi 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 题解 水题,可惜要写高精度有点烦 一看障碍物的摆放方式和最后的答案没有关系,于是干脆不读了,直接二项式反演可以得到 设$g_k$为一种摆放方式恰好占了k个障碍物 $f_k = \sum_{i = k}^{n} \binom{i}{k} g_{i}$ 可以得到 $g_0 = \sum_{k = 0}^ 阅读全文
posted @ 2018-08-21 10:20 sigongzi 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题解 我们冷静一下,先画一棵后缀树 然后发现我们要给c和d这一段区间在[a,b]这一段开头的串里找lcp 而lcp呢,就是c点的祖先的到根的一段,假如这个祖先的子树里有[a,b dis[u] + 1],那么这个u就是合法的,维护每个点子树里出现过的后缀串起点可以用线段树合并 (这里的深度指后缀树上该 阅读全文
posted @ 2018-08-20 16:25 sigongzi 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 题解 我并不会做,我觉得很像网络流但是毫无建图思路 我猜了个贪心,写了一下……啥过了90分?!这数据是有多水啊。。 哦又是行列拆点 不过要按照‘ ’进行拆点,也就是一段横着的区间只能放一个炸弹,一段竖着的区间只能放一个炸弹,如果两个区间的交点是一个空格的话,那么就把这两个区间拆出来的点连边 最后我们 阅读全文
posted @ 2018-08-20 10:27 sigongzi 阅读(328) 评论(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 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题解 看错题了,我以为是询问Q是个数字,问它在哪个位置 我一想这不直接01序列搞一下就好了嘛(事实上是012) 然后呢,我发现样例没过。 啊我看错题了,问的是Q这个位置是啥…… 哦,套用我之前的想法不是直接拿线段树维护01序列然后二分吗……(可以不用012,直接是0表示小于等于mid的值,1表示大于 阅读全文
posted @ 2018-08-19 12:59 sigongzi 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 题解 一写过一交A的水题 只要求一个dfs序,新加一个标记在子树所在的区间上覆盖上该点,维护深度最大的答案 代码 cpp include define enter putchar('\n') define space putchar(' ') define pii pair define fi fi 阅读全文
posted @ 2018-08-19 12:55 sigongzi 阅读(96) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 29 下一页