摘要:
何谓线段树 又是一个长时间没用的数据结构,复杂而又简单的线段树,简单是思路简单,复杂是调起来复杂(起步一个下午) 线段树及其强大的东西,可以在 \(\operatorname O(4\log n)\) 时间内完成,区间修改(增删改减),区间查询的操作 ,即所有关于区间的操作,它都能以 \(\oper 阅读全文
摘要:
/* 历时两天,算是搞出来了 先贴几个提醒 首先如果是用lucas定理并用阶乘形式来求组合数的, 请判断组合数是否成立,即`C(a, b)`,a是否大于等于b 如果小于你将re几个点 如果是直接用快速幂求解逆元来做的,恭喜你,你将WA#20和#46, 因为p可能小于n, m或n + m, 导致你求出 阅读全文
摘要:
搞懂Lucas定理! Lucas 定理内容如下:对于质数p,有C(n, m) ≡ C(n/p,m/p) * C(n%p, m%p) (mod p)其中n/p, m/p下取整即下面的图片 ![[Pasted image 20240429091355.png]] 卢卡斯定理 - OI Wiki (oi- 阅读全文
摘要:
矩阵 顾名思义就是一个小破方阵 类似这样 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 这就是一个四行四列的矩阵, 矩阵包含三个信息, 长度, 宽度, 数值 数值就是矩阵里每一位上的数值, 通常用一个数值来存 为了方便使用我们常写成结构体形式 定义 struct Mat { int 阅读全文
摘要:
Sylvester定理(数论) - 知乎 (zhihu.com) 简单说对于ax + by = n这个式子,当n = ab - a - b时无非负整数解 对于证明看看就行,现在没法整 例题 T319835 [2022第十三届蓝桥杯青少年组省赛] 组合 - 洛谷 | 计算机科学教育新生态 (luogu 阅读全文
![Sylvester定理(希尔维斯特定理)](https://img2024.cnblogs.com/blog/3317353/202404/3317353-20240427220953962-751711192.png)
摘要:
一般代码只是例子,具体使用依据题目来, DP是一种思想,代码都以属性为最大值等等为例子 01背包 最基本的背包 简单说就是有n个物品和容量为m的包,求其max/min/方案数等等即属性 一般转移方程为f[i][j]意思为在前i个里容量为j的情况下的要求的属性 (可忽略)一般这里的转移是在f[i][j 阅读全文
摘要:
/* 手玩数据找规律 你会发现有很强的规律性 */ // O(n) #include <iostream> #include <algorithm> #include <cstring> using namespace std; int n, m; string s; int x[3] = {2, 阅读全文
摘要:
/* 手玩数据,会发现,你找不出可以进行超过两次操作的字符串,大胆假设,加上题目里怪异的k <= 10^18,把k限制在2以内 就没了 */ #include <iostream> #include <algorithm> #include <cstring> using namespace std 阅读全文
摘要:
/* 和上题一样只不过,是换成了检验答案,还是找规律, 自己看看吧awa O(n) 实际上有点卡数据的意思,但是能过,思想也行,除非极限数据不然卡不掉,卡掉了就在卡掉极限数据 */ #include <iostream> #include <algorithm> #include <cstring> 阅读全文
摘要:
一般代码只是例子,具体使用依据题目来, DP是一种思想,代码都以属性为最大值等等为例子 01背包 最基本的背包 简单说就是有n个物品和容量为m的包,求其max/min/方案数等等即属性 一般转移方程为f[i][j]意思为在前i个里容量为j的情况下的要求的属性 (可忽略)一般这里的转移是在f[i][j 阅读全文