压位BFS 一个 $n$ 个点,$m$ 条边的有向图,当所有边权均为 $1$ 时,求任意两点之间的最短路。 $n\leq 1000,m\leq \frac{n(n-1)}{2}$ 。 多源最短路是一个经典问题,显然可以通过floyd算法在 $O(n^3)$ 的复杂度下求解。同时,考虑到本题中一个特殊的条件:所有边权均为 $1$ ,本题也可以通过01…
小球盒子模型总结 题目链接:洛谷十二重计数法。 设有 $n$ 个球,$k$ 个盒子: 球之间互不相同,盒子之间互不相同,可以空盒 根据乘法原理,答案就是 $k^n$ 。 球之间互不相同,盒子之间互不相同,每个盒子至多装一个球 相当于每个球找一个没有被选过的盒子放进去,答案是 $k^{\underline{n}}$ ,即 $k(k-1)\cdots(…
2021暑假训练组合数学题解 十二重计数法 小球盒子模型大合集 小球盒子模型总结。 「SDOI2016」排列计数 错位排列签到题 求有多少种 $1$ 到 $n$ 的排列 $a$,满足序列恰好有 $m$ 个位置 $i$,使得 $a_i = i$ 。 显然就是 $\binom{n}{m}D_{n-m}$ ,$D_i$ 表示 $i$ 的错位排列数量。 C…
2021“MINIEYE杯”中国大学生算法设计超级联赛(3) AC Codes 1003 Forgiving Matching FFT做带通配符的字符串匹配。看这里。 1004 Game on Plane 显然Alice应该尽量让选出的直线互不平行,而Bob要选出平行数量最多的直线。所以把直线变成最简化的向量排序就行了。 1007 Photosho…
2021牛客暑期多校训练营4 AC Codes B. Sample Game C. LCS 构造 $3$ 个长度为 $n$ 的字符串 $s_1,s_2,s_3$ ,使得 $LCS(s1,s2)=a,LCS(s2,s3)=b,LCS(s1,s3)=c$ ,$a,b,c$ 是给定的数字且 $a,b,c\leq n$ 。LCS是最长公共子序列。 先提取公…
2021牛客暑期多校训练营3 AC代码 B. Black and white 首先尽可能要减少我们选择的点的个数,然后思考本题的条件:如果一个矩形的三个角都有已被选择的点,那么剩下的那个点将被自动选择;这个条件实际上说明了一个事实,我们选择的点集不含有偶数环。同时注意到这个网格图可以建图为一个二分图,因此本题只需要在二分图上跑最小生成树。 C. M…
2021“MINIEYE杯”中国大学生算法设计超级联赛(2) AC代码 1001 I love cube 给一个三维空间中 $N\times N\times N$ 的点阵,询问一共有几种方法:选出三个点,构成等边三角形,并且每条边平行于坐标平面。 如上图,所以公式是 $(1^3+2^3+\cdots+n^3)\times 8$ 。 1002 I l…
2021“MINIEYE杯”中国大学生算法设计超级联赛(1) 终于有一个队友了,感动。团队复健中。 AC Codes 1001 Mod, Or and Everything 打表找找规律。 1003 Puzzle loop 因为只有一些没有公共边的环,所以每个点的度数都是偶数。因此可以列出一系列异或方程组,注意有可能存在方程数量>未知数数量的情况,…
2021牛客暑期多校训练营2 仍然是单打的一场。 这场题目还很恶心,全是工地英语和毒瘤题,体验极差。 AC Codes C. Draw Grids 容易发现能画的边数一定是 $nm-1$ ,判一下奇偶性就好了。 D. Er Ba Game 小模拟。 F. Girlfriend 注意到题目中的定义与阿波罗尼斯圆是一致的(因为 $\frac{AP}{P…
2021牛客暑期多校训练营1 队友跑路,痛苦单打。 AC Codes A. Alice and Bob Alice和Bob从两堆石子(石子数分别为 $n,m$ )中取石子,Alice先手选择一堆,从中取 $k(k>0)$ 个;Bob后手只能选择另一堆,从中取 $sk(s\geq 0)$ 个,谁不能取就输了。询问谁必胜? $T(T\leq 10^4)…