摘要: ? 注意事项 《算法竞赛进阶指南》 比赛感想 任务清单 NOI真题记录 Unknown 树状数组 Splay LCT 线段树 分块&莫队 树套树 非旋treap 左偏树 树链剖分 DSU on tree 点分治 CDQ分治 整体二分 线段树分治 动态点分治 DP 状压DP 背包 数位DP 动态DP 阅读全文
posted @ 2018-09-22 20:35 huyufeifei 阅读(246) 评论(3) 编辑
摘要: 解:这个毒瘤...... 我们首先发现每一堆的个数对操作不产生影响,每个操作都是针对单个石子的。 所以等价于每个石子都是一个独立的游戏。把它们异或起来作为sg函数值即可。 单个石子的sg值,直接暴力计算即可。 1 #include <bits/stdc++.h> 2 3 const int N = 阅读全文
posted @ 2019-03-25 21:44 huyufeifei 阅读(3) 评论(0) 编辑
摘要: 题意:给定n个区间,每个区间有颜色。m次询问,每次询问:这n个区间中所有被包含在[x, y]这一区间中的区间,它们的颜色是否取遍了[l, r]中的所有颜色。 强制在线。 解:第一步是大家都熟悉的套路⑧,把这些区间按照左端点排序。 然后从右往左加区间,用一个可持久化数据结构维护答案。 然后我在这里就被阅读全文
posted @ 2019-03-25 16:53 huyufeifei 阅读(2) 评论(0) 编辑
摘要: 解:搜索...... 我们可以每次选择分支少的搜索,或者说,贪心的搜索当前更优的决策。 每一层把能剪的点搞出来,按照度数/SIZ排序,然后依次搜索。加个最优化剪枝就完事了。 1 #include <bits/stdc++.h> 2 3 const int N = 310, INF = 0x3f3f3阅读全文
posted @ 2019-03-25 11:44 huyufeifei 阅读(2) 评论(0) 编辑
摘要: 无向简单图上给定s,t。每秒s先向t按照最短路走两步(优先节点编号较小的),然后t随机行动一步。 问期望多少秒相遇。n <= 1000 解: 这个s太蛇皮了...所以预处理一波。 然后不会,看题解发现是SB记忆化搜索...... 1 #include <bits/stdc++.h> 2 3 cons阅读全文
posted @ 2019-03-24 22:03 huyufeifei 阅读(5) 评论(0) 编辑
摘要: 我觉得这道题非常有前途....... 题意:给定一个填了一半的数组,你要把它补完,使之不存在奇回文串,求方案数。字符集为k。 n,k<=20w 解:不能有长为三的回文串。也就是不能有两个相隔1的数相同。 发现奇偶下标互相独立,抽出来就是不能有两个相邻的数相同。 我们可以设f[i][0]表示第i位填的阅读全文
posted @ 2019-03-24 20:00 huyufeifei 阅读(4) 评论(0) 编辑
摘要: 给你n个二元组,选出不多于k个满足第一维的min乘上第二维的sum最大。 傻逼题,按第一维排个序然后对顶堆求第二维前k大之和就没了。 1 #include <bits/stdc++.h> 2 3 typedef long long LL; 4 const int N = 300010; 5 6 st阅读全文
posted @ 2019-03-24 18:39 huyufeifei 阅读(2) 评论(0) 编辑
摘要: 解:考场上爆0了...... 回想怎么求两个排列的最长公共子序列。 回想怎么求1~n每个数恰出现两次的两个序列的最长公共子序列。就是每个数替换为它在另一个序列里的出现位置,降序。 所以我们可以把这每个空位都倒序填入m个数,然后暴力,最后输出方案。 考虑优化。发现在每个空位的时候,这m个数都是单降的。阅读全文
posted @ 2019-03-24 18:00 huyufeifei 阅读(4) 评论(0) 编辑
摘要: Orz zzd大神太强啦! 解:首先发现几个性质:如果把区间还原到原序列上的话,可以发现这些区间要么包含,要么相离。不存在相交。 然后发现如果区间a包含区间b,那么最后剩下来的人,a一定不小于b。又发现最优决策要么是0,要么是在某个极小的区间内。 然后我们发现这TM不就可以建出一棵树来么?枚举叶节点阅读全文
posted @ 2019-03-24 15:24 huyufeifei 阅读(4) 评论(0) 编辑
摘要: 补充一个题意不太清楚的地方:蔬菜坏掉是假设蔬菜都有标号,那么特定标号的蔬菜就会在特定时间坏掉。如果你及时卖了它们,那么那一天就不会有新的蔬菜坏掉。 结论1:如果我们知道了k天的答案,那么我们直接扔掉若干个最小的蔬菜即可获得k - 1天的答案。 证:因为能在k天卖的一定能在k - 1天卖..... 推阅读全文
posted @ 2019-03-22 18:34 huyufeifei 阅读(9) 评论(0) 编辑
摘要: 我的妈呀,这码农神题...... 第一问是个DP,要记录方案。先把纵向的转移建图。发现可以按照y坐标来划分阶段,每一层vector存一下,用前后缀最大值来转移。 第二问考虑所有可能成为最优方案的边。从终点倒推可以保证每条边都能到起点,而从起点出发就不一定能保证。这些边拿去网络流建图,然后最小流。 注阅读全文
posted @ 2019-03-22 18:18 huyufeifei 阅读(5) 评论(0) 编辑