摘要: 题意: n 个数中 m 个数错排的情况个数。 思路: 先从 n 个数中选出 m 个,即 $C_n^m$, 再算出 m 个数的错排数,即 ${f_{\left( m \right)}}$。 错排: 当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用f(n)表示,那么f(n-1)就表示 阅读全文
posted @ 2020-03-11 18:55 Kanoon 阅读(206) 评论(0) 推荐(0)
摘要: 题意: 给你一个二分图,求左侧端点的所有可能子集中的点相连的右侧端点的权值的和的最大公因数。 题解: 若所有右侧端点均不在同一左侧子集中,则求所有权值的最大公因数即可 。 否则,将在相同左侧子集中的右侧权值合并,求合并权值与其余权值的最大公因数。 证明 : $gcd(a,a+b)=gcd(a,b), 阅读全文
posted @ 2020-03-11 18:21 Kanoon 阅读(328) 评论(0) 推荐(0)
摘要: 题意: 求n个数中两两和的异或。 思路: 逐位考虑,第k位只需考虑0~k-1位,可通过&(2k+1-1)得到一组新数。 将新数排序,当两数和在[2k,2k+1)和[2k+1+2k,2k+2)之间时该位为1,又因为两数的最大和为2*(2k+1-1)=2k+2-2, 即当两数和在[2k,2k+1)和[2 阅读全文
posted @ 2020-03-11 18:08 Kanoon 阅读(182) 评论(0) 推荐(0)
摘要: 逆元的几种求法(扩展欧几里得,费马小定理或欧拉定理,特例,打表等) 逆元的三种求法 (费马小定理,扩展欧几里得,递推求阶乘逆元) 阅读全文
posted @ 2020-03-11 17:38 Kanoon 阅读(862) 评论(0) 推荐(0)
摘要: 题意: 从 m 个数中选 n - 1 个数组成先增后减的长为 n 的数组。 思路: 因为 n 个数中有两个数相同,所以每种情况实际上只有 n - 1 个不同的数——$c_m^{n - 1}$, 除去最大数,相同的数有 n - 2 种可能——${n-2}$, 最大数、相同的数排好后,剩余 n - 3 阅读全文
posted @ 2020-03-11 17:27 Kanoon 阅读(210) 评论(0) 推荐(0)
摘要: 题意: 任意两点间最短路中的最长距离。 思路: BFS遍历每个点能到达的最远距离。 Tips: vector的clear要与resize联用。 #include <bits/stdc++.h> using namespace std; const int M=1100; int n,m; vecto 阅读全文
posted @ 2020-03-11 15:32 Kanoon 阅读(308) 评论(0) 推荐(0)