摘要:
好用的 算法 记号 为了方便叙述,这里先给出下文将会用到的一些记号的含义。 \(n\) 为图上点的数目,\(m\) 为图上边的数目; \(s\) 为最短路的源点; \(D(u)\) 为 \(s\) 点到 \(u\) 点的 实际 最短路长度; \(dis(u)\) 为 \(s\) 点到 \(u\) 点 阅读全文
摘要:
题目传送门 做法 因为是异或运算,可以按位考虑。 先预处理出行 ( \(a[i]\) ) 异或和 \(suma\),与列 ( \(b[i]\) ) 的异或和 \(sumb\)。 如果 \(suma \ne sumb\),那就说明无解,因为 \(suma\) 和 \(sumb\) 最后都代表着整个矩阵 阅读全文
摘要:
欧几里得 它是我们求解整数 \(a,b\) 的最大公约数的算法。 前置知识 \(max(a,b)+min(a,b)=a+b\) \(max(a,b)=a+b-min(a,b),min(a,b)=a+b-max(a,b)\) 过程 不妨设 \(a>b\) 我们发现如果 \(b\) 是 \(a\) 的约 阅读全文
摘要:
没有打,但感觉 \(A,B,C\) 都很简单。可能是黑色题面自动降智? \(A\) 没想到这道题还有两个人没做出来 做法 用一个小根堆维护静态前缀第 \(k\) 大的值就行了。 具体地 如果当前堆中元素小于 \(k\) 个,那么就直接放入。 如果当前堆中元素大于 \(k\) 个,那么就判断一下如果堆 阅读全文
摘要:
考炸了,赛时只做出了一道题。 A 过关斩将 做法 这道题就是一个很显然的二维最短路,设 \(dis[i][j]\) 表示到达点 \(i\) 且当前的状态为 \(j\) 的最少代价。其中 \(j=0\) 时表示状态为 \(L\) , \(j=1\) 时表示状态为 \(R\) 。 很显然可以用 \(di 阅读全文
摘要:
题目传送门 做法 奇偶性判定好题。 \(Case1:\) \(n\) 为奇数 很显然,\(n\) 为奇数时一定可以拆分成两个数 \(x\) 和 \(y\),且 \(x\) 为奇数,\(y\) 为偶数,发现 \(x \mod 2=1,y\mod 2=0\),\(k\) 也刚好位 \(2\),所以当 \ 阅读全文
摘要:
更相减损术:已知两数\(a\)和\(b\),求\(gcd(a,b)\)。 不妨设\(a \geq b\),若\(a=b\),则\(gcd(a,b)=a=b\),否则对于所有\(\forall d|a,d|b\),可以证明\(d|a-b\)。 证明\(d|a-b\)如下,设\(a=k_1\times 阅读全文
摘要:
线段树 普通线段树 例 \(1\) 题目描述 给定一个长为 \(n\) 的序列,有 \(m\) 次操作,每次操作为以下三种之一。 修改序列中的一个数 求序列中某连续一段所有数的两两乘积的和 \(\text{mod} 1000000007\)。 求序列中某连续一段所有相邻两数乘积的和 \(\text{ 阅读全文
摘要:
题目传送门 非常套路的做法。 做法 做法\(1\) 考虑直接将\(k\)个标记点当做起点进行\(Dijkstra\)会出现问题(因为把每个标记点的\(dis\)值设为\(0\)就不会在更新了,与题意说的起点和终点均为标记点且为两个不同的点不符。) 那我们看到我们要求\(k\)个标记点的最短路,那么就 阅读全文