随笔分类 -  题解

摘要:题面 想必各位大佬一定想到了把现在和目标值不一致的边加入到一个新建的图上; 问题就变为了在新的图上寻找有多少个欧拉回路,并输出这些路径; 我们可以用栈来记录情况,然后对于会回答稍微处理处理就好了; 阅读全文
posted @ 2019-09-25 16:02 神之右大臣 阅读(132) 评论(0) 推荐(0)
摘要:题面 这道题稍微想一想就会联想到树形DP的入门题:没有上司的舞会; 但是再想一想会发现这根本就不是一颗树,因为它比树多了一条边; 这时候我们引入一个新的概念:基环树; 顾名思义(??),基环树就是在一颗树上填一条边构成的一个图;基环树也叫环套树(明明更像树套环)。 我们在树上可以做的事情基本都可以在 阅读全文
posted @ 2019-09-24 14:21 神之右大臣 阅读(150) 评论(0) 推荐(0)
摘要:题面 这道题是一道比较水的XXOI题; 我们可以发现,反着思考题目就变为了让所有叶子节点同时发出信号,然后这些信号同时到达根节点; 可以证明,这样答案不会改变; 那么我们可以自下而上dfs(),设f[u]表示以u为根,可以到达的最远距离; 那么很显然,对于点u,它对答案的贡献度就是num(它子节点的 阅读全文
posted @ 2019-09-23 15:45 神之右大臣 阅读(150) 评论(0) 推荐(0)
摘要:题面 1、定义有效子矩形为内部不包含任何障碍点且边界与坐标轴平行的子矩形。如图所示,第一个是有效子矩形(尽管边界上有障碍点),第二个不是有效子矩形(因为内部含有障碍点)。 2、极大有效子矩形:一个有效子矩形,如果不存在包含它且比它大的有效子矩形,就称这个有效子矩形为极大有效子矩形。(为了叙述方便,以 阅读全文
posted @ 2019-09-23 13:57 神之右大臣 阅读(243) 评论(0) 推荐(0)
摘要:题面 康托展开: 康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。 康托展开的实质是计算当前排列在所有由小到大全排列中的名次,因此是可逆的。 X = A[0] * (n-1)! + A[1] * (n-2)! + … + A[n-1] * 0! A[i] 指的是位于位置i后面的 阅读全文
posted @ 2019-09-23 11:56 神之右大臣 阅读(326) 评论(0) 推荐(0)
摘要:题面 “我有个愿望,我希望穿越一切找到你。” 这是个二维平面世界,平面上有n个特殊的果实,我从(0,0)点出发,希望得到尽量多的果实,但是出于某种特殊的原因,我的运动方式只有三种(假设当前我在(x,y)): 1、我可以走到(x+1,y) 2、我可以走到(x,y+1) 3、我可以走到(x+1,y+1) 阅读全文
posted @ 2019-09-21 16:17 神之右大臣 阅读(245) 评论(0) 推荐(0)
摘要:题面 这道题是一道贪心+DP的好题: 首先排序是一定要干的事情。 然后我们分情况处理: 1.如果剩一个人,让最小的回来接他 2.如果剩两个人,让最小的回来接,剩下的那两个人(即最大的两个人)过去,让次小的回来,最小的两个过去 以上的两个方法一定是最优的,因为最大的人要不让最小的送,要不带一个次大的; 阅读全文
posted @ 2019-09-21 16:06 神之右大臣 阅读(318) 评论(0) 推荐(0)
摘要:题面 这道题是KMP的模板。 KMP需要注意的细节有很多,所以把这篇文章发上来供参考; 阅读全文
posted @ 2019-09-20 19:27 神之右大臣 阅读(159) 评论(0) 推荐(0)
摘要:题面 这道题需要用到一个神奇的知识点:log(n*m)=log(n)+log(m); 所以对所有边权取个log,然后算log的最短路的同时维护乘积即可 阅读全文
posted @ 2019-09-20 16:06 神之右大臣 阅读(147) 评论(0) 推荐(0)
摘要:题面 这道题是一道标准的种类并查集: 种类并查集是给每个结点一个权值。然后在合并和查找的时候根据情况对权值来进行维护。 通过将原有的区间范围变大使并查集可以维护种类的联系: 阅读全文
posted @ 2019-09-20 15:02 神之右大臣 阅读(156) 评论(0) 推荐(0)
摘要:题面 k==1时,快速幂就好了; k==2时,exgcd就好了,但要注意取模范围的控制; k==3时,BSGS可以解决高次同余方程: 然后就可以开心的A掉了,但要注意特殊情况的特判 阅读全文
posted @ 2019-09-20 11:36 神之右大臣 阅读(261) 评论(0) 推荐(0)
摘要:题面 这道题是一道标准的01分数规划: 但是有一些细节可以优化: 不难想到要二分一个mid然后判定图上是否存在一个环S,该环是否满足∑i=1t(Fun[vi]−mid∗Tim[ei])>0 但是上面的算法并不好实现,所以可以将两边同时乘上-1,使式子变为∑i=1t​(mid∗Tim[ei​]−Fun 阅读全文
posted @ 2019-09-18 20:06 神之右大臣 阅读(260) 评论(0) 推荐(0)
摘要:题面 结论:gcd(F[n],F[m])=F[gcd(n,m)];F[n]=a和F[n+1]=bF[n+2]=a+b,F[n+3]=a+2b,…F[m]=F[m?n?1]a+F[m?n]bF[n]=a,F[n+1]=b,F[m]=F[m?n?1]a+F[m?n]F[m]=F[m?n?1]?F[n]+ 阅读全文
posted @ 2019-09-18 18:02 神之右大臣 阅读(187) 评论(0) 推荐(0)
摘要:题面 一句话题意:找一个点使得,使得从这个点出发作为源点,发出的流量最大,输出这个最大的流量 这道题是换根法+二次扫描的模板; 首先若确定1为原点,那么可以写出dp方程:当v的度是1时, g[u]+=g[v];否则g[u]+=min(g[v],star[i].w); 但以上仅仅是有原点的做法,那么如 阅读全文
posted @ 2019-09-18 13:46 神之右大臣 阅读(262) 评论(0) 推荐(0)
摘要:现有n个Zack,每个Zack有一个一个能力值,从这n个Zack中选出k个,使他们的最大公约数的值最大 【输入格式】 第一行有一个整数n,代表有n个Zack 第二行n个整数ai,代表每个Zack的能力值 【输出格式】 一共n行,第n行为k=i情况下的能力值的最大公因数 【样例输入】 4 1 2 3 阅读全文
posted @ 2019-09-15 16:20 神之右大臣 阅读(191) 评论(0) 推荐(0)
摘要:题面 Dilworth定理:在数学理论中的序理论与组合数学中,Dilworth定理根据序列划分的最小数量的链描述了任何有限偏序集的宽度。 反链是一种偏序集,其任意两个元素不可比;而链则是一种任意两个元素可比的偏序集。Dilworth定理说明,存在一个反链A与一个将序列划分为链族P的划分,使得划分中链 阅读全文
posted @ 2019-09-15 15:07 神之右大臣 阅读(216) 评论(0) 推荐(0)
摘要:题面 很裸的边取模边乘。注意因为进位的原因模数应该比较大; 另外,这道题是一道标准的分块打表例题(那样的话数据就可以更大了),可以用来练习分块打表; 阅读全文
posted @ 2019-09-14 13:58 神之右大臣 阅读(109) 评论(0) 推荐(0)
摘要:题面 因为所求的是中位数,所以考虑改变原序列。把大于 b 的数全部变为 1,小于 b 的数变为 −1,等于 b 则为 0。问题就变为求存在几个包含 b的区间和为 0 。 根据乘法原理,我们枚举每一个l[i],求出l[i]*r[-i]后累加到ans上; 因为数组的下标不能是负数,所以把所有下标都加上1 阅读全文
posted @ 2019-09-11 17:45 神之右大臣 阅读(141) 评论(0) 推荐(0)
摘要:题面 这道题在数学方面没什么难度: 对于每一个正整数n: 质因数分解后可以写成n=a1^k1a2^k2……*ai^ki 所求的数的因数和f(n)就等于f(n)=(1+a1+a1^2+……+a1^k1)(1+a2+a2^2+……+a2^k2)……*(1+ai+ai^2+……+ai^ki) 利用等比数列 阅读全文
posted @ 2019-09-11 14:39 神之右大臣 阅读(260) 评论(0) 推荐(0)
摘要:题面 裸的杨辉三角前缀和,但 在求前缀和的时候有可能得到一个负数(由于取模的原因),所以一定要加上模数后再取模!!!! 阅读全文
posted @ 2019-09-09 18:52 神之右大臣 阅读(247) 评论(0) 推荐(0)