02 2020 档案
摘要:在数字电路中,经常会遇到进制转换问题,如二进制 (Binary) 转 BCD (Binary Coded Decimal)。针对这种数制的转换,有个很神奇的算法—— double dabble algorithm ,也称为 shift and add 3 algorithm 。 其主要流程如下(摘自
阅读全文
摘要://求LCA,k级祖先 #include <bits/stdc++.h> using namespace std; const int maxn = 5e5+5; const int maxm = 1e6+5; int lg[maxn]; struct edge { int next, v; }E[
阅读全文
摘要:```cpp //静态区间最值 #include using namespace std; const int maxn = 1e5 + 5; int ST[maxn][25]; int a[maxn]; void STinit(int n) { for (int i = 1; i > n >> m; for (int i = 1; i <= n; i++) { scanf("%d", &a[i]
阅读全文
摘要:题意: 将至多m个豆子(即0 m都可以)放到n棵树上(一棵树可以一颗也不放),问有多少种放的方法。 答案对p取模,n,m Lucas定理 $C(s p+q,t p+r)\equiv C(s,t) C(q,r) \pmod p$ (C(n,m)当m大于n时组合数为0?) 即C(n,m)可以转换为$C(
阅读全文
摘要:题意: 假设有x1个字母A, x2个字母B,..... x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,..... 字母Z的价值为26。那么,对于给定的字母,可以找到多少价值 using namespace std; typedef long long ll; ll dp[30][55]
阅读全文
摘要:题意: 有n种物品,并且知道每种物品的数量。要求从中按顺序选出m件物品的方案数。例如有两种物品A,B,并且数量都是1,从中选2件物品,则排列有"AB","BA"两种。 思路: 显然是一个多重集排列数问题,需要用指数型生成函数。 多重集排列数: k种物品,个数分别为$a_1,a_2,a_3...a_k
阅读全文

浙公网安备 33010602011771号