10 2018 档案
摘要:好神奇的dp... 首先有一个很简单的思想:设dp[i][j]表示目前到了第i分钟,朝上的面被烤了j分钟的情况下所需的最小交换次数 那么有转移:dp[i][j]=min(dp[i-1][j],dp[i-1][i-j]+1) 这一点很好理解,就是讨论现在向上这面上一分钟的状态:如果上一分钟这一面也朝上
阅读全文
摘要:如果不喜欢过长代码的看官,请移步其他题解... 这题其实思想极其简单: 棋盘问题常见的算法都比较暴力,常用的有搜索和状压dp 而这道题显然没啥能状压的,所以我们考虑搜索 但是仅仅搜索是不够的,因为有极大的可能搜到死... 所以我们引入记忆化 设状态f[i][j][k][0/1/2]代表目前在点(i,
阅读全文
摘要:玄学字符串dp... 题意:给定一个括号序列,求长度为2n的合法的括号序列的个数(要求每个被统计的合法序列中均至少有一个子串为给定的括号序列) 题解: 这题没有想的那么复杂,就是暴力的一个dp 首先我们设状态f[i][j][k][0/1]表示当前放到了第i个括号,前i个括号中左右括号个数差为j,已经
阅读全文
摘要:这是一道...卡了我一个月的树形dp... 我真是太弱了... 其实仔细想想,这题的核心思路并不是特别复杂,但是的确存在不小的难度 作为一个看过全网基本所有题解+标程才弄明白这题到底怎么回事的蒟蒻,我努力把所有东西揉到一起让各位看官一眼看懂... 首先我们简化一下题意:给定一棵满二叉树,每个叶节点有
阅读全文
摘要:非常好的树形dp 首先,有个很显然的状态:记状态f[i][j]表示以i为根节点的子树中选了j个叶节点作战,那么很显然有转移:f[i][j1+j2]=f[i<<1][j1]+f[i<<1|1][j2] 所以我们只需爆搜一发状态,然后每次更新即可 但是有个问题:当我们搜到最底层的叶节点时,由于他的贡献与
阅读全文
摘要:题意:求 题解:这题...数据范围是真小... 研究一下这一表达式,发现gcd(i,j)=1表示i,j互质,那么互质肯定能想到欧拉函数,可是欧拉函数要求j<i,那么我们变化一下:显然原矩阵是对称的,所以可以转化一下,变成 (注意到后面-1是为了防止(1,1)被重复统计) 那么发现答案就是 公式挂掉的
阅读全文
摘要:非常有趣的题 题意:求1~N!中有多少个与M!互质的数,T组询问,答案对R取模 题解: 首先,因为N>M,所以N!>M!,所以答案一定有一部分是φ(M!) 接下来做一些分析: 引理: 若x与p互质,则x+kp与p互质(k∈Z) 证明: 反证法:假设x+kp与p不互质,则设gcd(x+kp,p)=d(
阅读全文
摘要:基本就是推式子,见博客https://blog.csdn.net/lleozhang/article/details/83416791
阅读全文
摘要:题解:首先推一发式子(见csdn https://blog.csdn.net/lleozhang/article/details/83415995) 因为x是整数,所以x的数量显然为能使取得整数的t的个数,也就是求的约数个数 而根据约数个数和公式(设一个数) 可以将前n个数质因子分解,然后将质因子的
阅读全文
摘要:这道题告诉了我们一个很重要的道理:看到题,先想明白再动手! 题意:求对999911659取模的值 首先,由于n的数据范围不是很大(至少不是很大),所以可以O()枚举所有约数分别求组合数 但是有个问题:根据费马小定理, 所以组合数应当对p-1取模! 可是p-1并不是一个质数啊 所以我们要将p-1质因子
阅读全文
摘要:题意: Alice和Bob玩游戏,每人各有8张牌,牌的大小在0~4之间 每次操作,先手可以选择自己一张牌和对方一张牌求和后%5,将新的牌替代自己拿出的那张牌,以此类推,直到有一个人手中的牌全部是0,则这个人获胜 但选牌时不能选择已经为0的牌进行操作 现给定初始状态下两人的手牌以及先后手,求是否存在有
阅读全文
摘要:这题不错... 首先,不难看到他想让你求出的是最短路树 然后,考虑到所有边权均为1,所以可以采用bfs直接生成最短路树 至于方案的储存,可以在加边的时候同时记录边的编号,然后对每个点维护一个能转移他的最短路的边的编号的集合,这样总的方案数就是所有的集合大小的乘积 然后用dfs在每个集合中选一个元素输
阅读全文
摘要:好玄学的东西... 核心思想:for循环! 首先,我们从前向后扫所有的点,如果这个点没被标记成不可用就把这个点标记成已使用,然后把所有与这个点直接相连的点标记成不可用 接下来,我们从后向前扫所有的点,如果这个点被标记成已使用就把与这个点所有直接相连的也被标记已使用的点达成不能使用,最后标记成可使用的
阅读全文
摘要:参见此博客: https://www.cnblogs.com/magisk/p/8809922.html
阅读全文
摘要:一个看起来就不对的贪心居然是正解... 但仔细思考一下,这种贪心倒的确找不到反例.. 贪心思想:每次找出离根节点最远的点,然后由根节点向这个点的父节点连边,一直连到所有点都能被覆盖即可,这样构造出的一定是一个可行的最优解 正确性证明(个人YY): 主要是要证明这种做法的最优性: 首先,由于所有点都要
阅读全文
摘要:玄学贪心... 题意:给出一棵树,要求将他的所有叶节点分成最少的组,且在每组中的任意两节点之间的距离不大于k 解析: 显然是个贪心啦... 稍微考虑一下贪心思想: 我们从下向上合并整棵树,在合并到某个节点时,我们把他以下的所有叶节点到他的距离全处理出来然后排序,设所有距离排序后为d1,d2...dn
阅读全文
摘要:贪心题是很有趣的... 首先,本题为括号匹配问题,那么可以考虑进行栈模拟 然后,我们思考一下如何匹配:虽然题目中仅对右括号的位置提出了区域性要求,但可以发现,对能匹配上的栈顶括号立刻进行匹配一定是一种最优解! 为什么? 根据括号匹配原则,如果栈顶括号未被匹配,那么其他括号将无法被匹配,那么栈顶括号越
阅读全文
摘要:非常好的一道题,是线段树的常见玩法 将字符串转化为1~26个数 对区间开一棵线段树,用两个数组分别维护区间中1~26每个数的个数以及一个区间覆盖标记,表示这个区间是否被某一个值覆盖了 在每次排序时,首先查出这个区间中1~26每个数出现的次数,然后因为是排过序的,所以相等的数排完序之后一定是连续的一段
阅读全文
摘要:题意:给定一张n个点,m条边的无向联通图,其中m-n<=20,共q次询问,每次询问求给定两点u,v间的最短路长度 第一眼看见这题的时候,以为有什么神奇的全图最短路算法,满心欢喜的去翻了题解,发现就四个字“树上套环”! 其实这题的提示很明显:m-n<=20! 这说明,如果我们对这个图做一次生成树,那么
阅读全文
摘要:表示我这种蒟蒻面对这种递推第一思想显然是打表啊 先贴个用来打表的暴力: 实测这个打表程序是正确的(可以获得30分) 接下来是本人心路历程: 观察一下:1-1,2-5,3-16,4-45...找一下前后项吧! 观察前后项的倍数关系应该在2~3之间,那先定一个基础表达式 f[i]=2f[i-1]+...
阅读全文
摘要:一.进制转化 将k进制数转化为十进制数: 设k进制数为(abcd)k,则对应十进制数为 (小数同理,乘k的负幂次) 将十进制数转成k进制数: 设十进制数为x: t1=x/k,t2=x mod k t11=t1/k,t22=t1 mod k ...... t1n=t1 n-1 /k,t2 n= t1
阅读全文
摘要:什么鬼noip互测题... 这题很显然是树形dp,但设计状态以及转移是个难点 记状态f[i][j][k]表示以i为根节点的子树,离i最近的祖宗节点编号为j放了虫洞(伐木场?),i的子树内放了k个伐木场的方案数 设to为i的某个子节点,当i不放伐木场时,有: dp[i][j][k]=min(dp[to
阅读全文
摘要:做这题之前先看道高考真题(好像是真题,我记不清了) 例:已知一个由n个0和n个1排列而成的数列,要求对于任意k∈N*且k∈[1,2n],在前k个数中1的个数不少于0的个数,求当n=4时这样的数列的数量。 解:14个(策略:暴力枚举,时间复杂度O(2^n)) 所以本题其实就是对高考真题的一个一般化推广
阅读全文
摘要:然后考虑正解 我们发现,最坏情况就是每个点都派驻军队,所以答案至多是“.”的数目 而且,每个点都至多只有一个入度和一个出度,所以我们可以将每个点拆成两个点,一个作为入点,一个作为出点,然后所有图上能到达的点由出点向入点建图 这样整个图就形成了一个二分图 然后在整个图上跑二分图匹配即可 答案即为“.”
阅读全文
摘要:我说这是我们的noip互测题你信吗... 首先介绍一下仙人掌(略,参见题面) 然后我们思考一下怎么做: 首先,如果原图是一棵树,那么做法是很显然的(树上最长链嘛) 但是,图是一个仙人掌,所以树上最长链的做法有bug 所以我们考虑:是否能将树上的做法移接到仙人掌上即可 怎么移接? 我们看到,根据仙人掌
阅读全文
摘要:莫名互测题... 这题一看就是期望dp,可是不会转移,所以考试写50分暴力走人... 正解:期望dp+记忆华搜索 设状态f[i][j]代表聪聪在i点,可可在j点时聪聪追上可可的期望 然后用dfs更新即可,注意先预处理出最短路和tpos[i][j]表示聪聪在i点,可可在j点时聪聪走一步时会走到的位置
阅读全文
摘要:定理:对于给定的正整数a,b,方程有解的充要条件为c是gcd(a,b)的整数倍 证明: 充分性证明: 设gcd(a,b)=d,于是设,其中k1,k2互质 那么原等式等价于,即,其中k1,k2互质 那么这个方程等价于模线性方程,由拓展gcd知,该方程一定有解 那么该方程的一组解即为原方程的解 必要性证
阅读全文
摘要:其实我并没有见过原题,只是因为...这被改编成了互测题... 题目中提到了一个序列,这个序列是很重要的,否则这个问题好像是没有合理的时间复杂度解法的 但正因为有了这个序列,这个问题的时间复杂度才让人能够接受 序列的特性:逆序对! 根据题意,我们发现一个图上所有的连边一定来源于这个序列里的逆序对! 那
阅读全文
摘要:互测题T3... 首先有个dp是非常好想的: 设dp[i][j]为前j个数分成i组的最大得分,则易得:dp[i][j]=max{dp[i-1][k-1]+num[k][j]},其中,num[k][j]表示从第k个数到第j个数不同值的数量 而num数组可以预处理出来,时间复杂度O(n^2 k) 等等,
阅读全文
摘要:这是拓展crt的典型应用 在你开始做之前,我一定要告诉你一件事情:虽然这道题看着和拓展crt模板很像,但他俩是有巨大的区别的!不要直接把板子改吧改吧扔上去! 题目模型:求解模线性方程组 其中p1,p2...pn不一定互质 第一眼:拓展crt板子题! 第二眼:等等...好像不太对 第三眼:WTF!系数
阅读全文