随笔分类 - 基础算法
摘要:首先吐槽一下bzoj,这CF原题还做成权限题啊?! 需要注意的是,一个点不能被选中当且进当这个点在第y+1年到现在这一段时间内受到攻击,其余的点都可以被选 然后...其实这题的重点在于...码 思想很简单,先树链剖分,然后建起一棵主席树维护,每次修改就生成一个新版本,这样的话用现在的版本-时刻y的版
阅读全文
摘要:一道很有趣的题...难度并不是很大,基本可以接受 显然这是一个构造问题 我们分成几类进行讨论: 首先,如果目标是非正数,那一定是不可能的(显而易见) 然后,如果目标比允许操作的和还要大,那也是不可能的 剩下的情况就不那么显然了,我们先假设有解再进行讨论 (插播一句:强烈建议食用样例!!!对正解有很大
阅读全文
摘要:一道乱搞的题... 题意:给你两个字符串,每次操作步骤如下:从前向后扫描整个字符串,对于每一位都有两种选择,一种是保持原来的字符不变,另一种是把这一位上的字符变成和前一位一样(注意是操作后的前一位),问你至少需要多少次操作才能将第一个字符串变成第二个字符串,如果不可能输出-1 题解: 看到网上所有人
阅读全文
摘要:高斯消元解期望方程组题目 其实所谓解期望方程组,就是解普通方程组,只是这个方程组是根据期望的定义列出的。 对于本题,每一条边对总期望的贡献就是这条边的边权乘上这条边期望的经过次数,所以我们求出每条边期望的经过次数后从大到小排序,然后从小到大赋边权(编号)即可 所以问题就转化成了如何求出每条边经过次数
阅读全文
摘要:首先你需要一些Nim游戏的知识! 看这里 现在假设你已经会了Nim游戏的知识了 那么我们就可以讨论这道题了 首先,根据上面提到的:如果所有数量异或和为0,那么这就是不合法的 而且,其实由于后手可以取走一些堆,所以只要是这些堆数量的一个子集异或和为0就是不合法的(因为后手可以把这个子集以外的部分全取走
阅读全文
摘要:裸的线性基+贪心... 把权值从大到小排序后逐个将编号插入线性基中,如果这个编号已经能用线性基中的值表示出来了就不插入 为什么这么做是正确的? 线性基定义 我们希望总权值最大,所以当然从大到小排序 然后逐个插入线性基中,如果我们惊喜地发现这个值已经能用线性基中元素表示出来,说明线性基中一定存在一个元
阅读全文
摘要:据说是裸题... 据说这个东西叫实数线性基... 我说这个毒瘤题卡精度!!! 吐槽结束,进入正文: 本题的核心思想:贪心!按代价从小到大排序后插入线性基,如果能表示出来就不插入,但这里的插入是高斯消元的方法进行的。 然后我们讨论几个问题: 第一:不用考虑购买装备数最多这个问题! 这是在读题时第一个进
阅读全文
摘要:直接利用降幂公式(或者有人叫扩展欧拉定理?),由降幂公式: 那么我们可以对这个式子降幂: 发现指数部分仍然是原表达式的形式,所以我们递归处理: 记f(p)=2^2^2^2^2... mod p 于是根据上述分析可得: f(p)=2^(f(φ(p)+φ(p)) mod p 于是我们不断递归至φ(p)=
阅读全文
摘要:好玄学的东西... 核心思想:for循环! 首先,我们从前向后扫所有的点,如果这个点没被标记成不可用就把这个点标记成已使用,然后把所有与这个点直接相连的点标记成不可用 接下来,我们从后向前扫所有的点,如果这个点被标记成已使用就把与这个点所有直接相连的也被标记已使用的点达成不能使用,最后标记成可使用的
阅读全文
摘要:一个看起来就不对的贪心居然是正解... 但仔细思考一下,这种贪心倒的确找不到反例.. 贪心思想:每次找出离根节点最远的点,然后由根节点向这个点的父节点连边,一直连到所有点都能被覆盖即可,这样构造出的一定是一个可行的最优解 正确性证明(个人YY): 主要是要证明这种做法的最优性: 首先,由于所有点都要
阅读全文
摘要:玄学贪心... 题意:给出一棵树,要求将他的所有叶节点分成最少的组,且在每组中的任意两节点之间的距离不大于k 解析: 显然是个贪心啦... 稍微考虑一下贪心思想: 我们从下向上合并整棵树,在合并到某个节点时,我们把他以下的所有叶节点到他的距离全处理出来然后排序,设所有距离排序后为d1,d2...dn
阅读全文
摘要:贪心题是很有趣的... 首先,本题为括号匹配问题,那么可以考虑进行栈模拟 然后,我们思考一下如何匹配:虽然题目中仅对右括号的位置提出了区域性要求,但可以发现,对能匹配上的栈顶括号立刻进行匹配一定是一种最优解! 为什么? 根据括号匹配原则,如果栈顶括号未被匹配,那么其他括号将无法被匹配,那么栈顶括号越
阅读全文
摘要:表示我这种蒟蒻面对这种递推第一思想显然是打表啊 先贴个用来打表的暴力: 实测这个打表程序是正确的(可以获得30分) 接下来是本人心路历程: 观察一下:1-1,2-5,3-16,4-45...找一下前后项吧! 观察前后项的倍数关系应该在2~3之间,那先定一个基础表达式 f[i]=2f[i-1]+...
阅读全文
摘要:神题... 其实这题巨水,用各种诡异的方法都能A,包括STL等等 我之所以写题解,是因为我发现了一个bug:bz和luogu时限有问题! 这题我用了两种做法: ①:直接使用STL-map(不能直接用数组,值太大了)记录一个数是否出现过即可,时间复杂度O(nlog2n有常数) bzoj AC,luog
阅读全文
摘要:自认为是少有的复杂的代码 这题思想很简单,就是大模拟 对于for循环,一行读入4个字符串,然后分类讨论: ①:如果是一个正常的O(n),那么累计n的指数加1 ②:如果是一个常数级别的,那么继续循环,但是不累计指数 ③:如果这个循环是从n到常数,或大常数到小常数,那么这个循环及它内部的循环都不进,打好
阅读全文