摘要:题目:传送门 题意 思路 大佬精讲 #include <bits/stdc++.h> #define LL long long #define ULL unsigned long long #define UI unsigned int #define mem(i, j) memset(i, j,
阅读全文
摘要:题目:传送门 题意 思路 邓老师精讲 这题有一个巧妙的转换就是,将这种二分图问题,转移到二维矩阵上。 这里我们可以将二分图投射到一个 n * n 的矩阵上; 题目要求给边染色,且任意两条红色边不共享端点,任意两条蓝色边不共享端点; 那在矩阵上,问题可以转化为,在 n * n 的矩阵上放若干红色和蓝色
阅读全文
摘要:题目:传送门 题意 定义 Fn 为斐波那契第 n 项,递推式为 输入 N,C,K(1 <= N,C <= 1e18, 1 <= K <= 1e5), 求 输出答案对 1e9 + 9 取模 思路 参考博客 首先,需要知道斐波那契数列的通项公式 然后我们可以用二次剩余,求出 sqrt(5) 在 mod
阅读全文
摘要:题目:传送门 题意 思路 官方题解:地址 #include <bits/stdc++.h> #define LL long long #define ULL unsigned long long #define UI unsigned int #define mem(i, j) memset(i,
阅读全文
摘要:题目:传送门 题意 思路 官方题解: 地址 #include <bits/stdc++.h> #define LL long long #define ULL unsigned long long #define UI unsigned int #define mem(i, j) memset(i,
阅读全文
摘要:一、经典汉诺塔 题意 有三根柱子 A,B,C,柱子 A 上放着 n 个大小不同的盘子,从上往下,盘子大小依次增大。要把所有盘子都移到柱子B上,且移动的过程中,同一根柱子不能出现大盘子在小盘子上方的情况,问至少需要多少次移动。 分析 设 F[n] 为将 n 个盘子从柱子A移动到柱子B的最少移动次数。
阅读全文
摘要:错位排列递推式 f[0] = 0; f[1] = 0; f[i] = (i - 1) * (f[i - 1] + f[i - 2]); HDU 2048 全错位排列 #include <bits/stdc++.h> #define LL long long #define ULL unsigned
阅读全文
摘要:结论:若 n & k == k 则,C(n, k) 为奇数,否则为偶数。 证明
阅读全文
摘要:题目:传送门 博一 博二 #include <bits/stdc++.h> #define LL long long #define ULL unsigned long long #define mem(i, j) memset(i, j, sizeof(i)) #define rep(i, j,
阅读全文
摘要:题目:传送门 题意 给你一个整数D,有一个无向图,图的节点为 D 的因子,若 x % y == 0 && x / y 是一个质数,则节点 x 和 y 有一条无向边,边权为 是 x 的因子但不是 y 的因子的数的个数。有 q 次询问,每次询问输入两个节点 x、y 问节点 x 到节点 y 边权最小的路径
阅读全文
摘要:题目:传送门 题意: 给你一个长度为 N 的只由123 构成的字符串 a ,定义 Xi,j 满足: 思路: 推荐博客:博one 博two 第一个观察,最终的答案只可能是 0、1、2,然后,从 N = 2 起,Xi,j 就不存在 3 了,都是 0、1、2,那我们直接在输入的时候,就将 123 转换为
阅读全文