摘要:
题目大意 有1000瓶水, 其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时内就会死亡, 至少要多少只小白鼠才能在24小时内鉴别出哪瓶水有毒? 思路讲解 首先,给小白鼠编号,1,2,3,4,5,6,...,n! 0000000001 将第一瓶水给小鼠1喝 0000000010 将第二瓶水给小鼠2喝 阅读全文
摘要:
LCA + 树上倍增 一、例题引入 题目: 2846. 边权重均等查询 现有一棵由 n 个节点组成的无向树,节点按从 0 到 n - 1 编号。给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges ,其中 edges[i] = [ui, vi, wi] 表示树中存在一条位于节点 u 阅读全文
摘要:
一、01背包 定义dp[i][j]表示从前i件物品中选,体积不超过 j 的最大价值 N, V = map(int, input().split()) v = [0] * (N + 1) w = [0] * (N + 1) for i in range(1,N + 1): v[i],w[i] = ma 阅读全文
摘要:
CF204A 题目链接 https://codeforces.com/problemset/problem/204/A 题目大意 模板讲解 数位DP模板 #include<bits/stdc++.h> #define ll long long using namespace std; int n, 阅读全文
摘要:
时间复杂度为:\(O(3^n)\) s = 0b1000110 x = s while x != 0: print(bin(x)[2:]) x = (x - 1) & s ''' 1000110 1000100 1000010 1000000 110 100 10 ''' 阅读全文
摘要:
CF580D 题目链接 https://codeforces.com/problemset/problem/580/D 题目大意 思路 令dp[i][j]表示,吃菜状态为i,且最后一道菜为j的最大满足感! 代码 #include<bits/stdc++.h> #define ll long long 阅读全文
摘要:
定理 内容 设a,b是不全为0的整数,对于任意正整数x,y,满足gcd(a,b)|ax + by,且存在整数x,y,使得ax+by = gcd(a,b)。 推论 ①如果 ax + by = c 有解,那么 c % gcd(a,b) = 0 。 也加贝祖定理。 ②如果 ax + by = 1 有解,那 阅读全文
摘要:
卡特兰数 一、计算公式 \(C_1 = 1\), \(C_n = C_{n - 1} \frac{4n - 2} {n + 1} = C_{2n}^{n} - C_{2n}^{n + 1} = \frac {C_{2n}^n} {n + 1}\) 二、应用场景 场景1 n 个元素进栈序列为:1,2, 阅读全文
摘要:
一、性质求欧拉函数 from collections import Counter # 证明:容斥原理 # f(N) = N * (1 - 1/p1) * (1 - 1/p2) * ... * (1 - 1/pn) # 与N互质的数的个数: N - N/P1 - N/P2 - ... - N/Pn 阅读全文
摘要:
一、中国剩余定理 from functools import reduce r = [2,3,2] # 要求mod里的数必须两两互质 mod = [3,5,7] def exgcd(a,b): if b == 0: return 1,0,a x,y,gcd = exgcd(b,a % b) x,y 阅读全文
