Zecheng's Blog

New post every day (with probability 0.000000003).

保研机试训练Day-25

线性DP

线性DP 数字三角形 给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 #include<iostream> #inc...

保研机试训练Day-24

DP

DP 多重背包问题 I 有 N 种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。 输出最大价值。 版本1 二维 #include<iostream> #include<algorithm> using namespace std; ...

科研Day-01

RAG

RAG RAG定义 RAG(Retrieval-Augmented Generation,检索增强生成) 是一种结合了信息检索技术与语言生成模型的人工智能技术。该技术通过从外部知识库中检索相关信息,并将其作为提示(Prompt)输入给大型语言模型(LLMs) ,以增强模型处理知识密集型任务的能力,如问答、文本摘要、内容生成等。 检索:检索是RAG流程的第一步,从预先建...

保研机试训练Day-23

数论 && Nim游戏 && DP

数论 高斯消元解异或线性方程组 输入一个包含 n 个方程 n 个未知数的异或线性方程组。 方程组中的系数和常数为 0 或 1,每个未知数的取值也为 0 或 1。 求解这个方程组。 异或线性方程组示例如下: M[1][1]x[1] ^ M[1][2]x[2] ^ … ^ M[1][n]x[n] = B[1] M[2][1]x[1] ^ M[2][2]x[2] ^ … ^ M[2][...

保研机试训练Day-22

卡特兰数 && 容斥原理 && 博弈论

数论 卡特兰数 给定 n 个 0 和 n 个 1,它们将按照某种顺序排成长度为 2n 的序列,求它们能排列成的所有序列中,能够满足任意前缀序列中 0 的个数都不少于 1 的个数的序列有多少个。 输出的答案对 10^9+7 取模。 #include<iostream> #include<algorithm> using namespace std; typed...

保研机试训练Day-21

组合数

数论 组合数1(递推法) 给定 n 组询问,每组询问给定两个整数 a,b请你输出 C(a,b) mod(10^9+7) 的值。 #include<iostream> #include<algorithm> using namespace std; const int N = 2010, mod = 1e9 + 7; int c[N][N]; int n; v...

保研机试训练Day-20

中国剩余定理 && 高斯消元

数论 中国剩余定理 给定 2n 个整数 a1,a2,…,an 和 m1,m2,…,mn,求一个最小的非负整数 x,满足 ∀i∈[1,n], x ≡ **mi (mod** ai)。 #include<iostream> #include<cstring> #include<algorithm> using namespace std; typede...

保研机试训练Day-19

快速幂 && 裴蜀定理 && 扩展欧几里得算法

数论 快速幂求逆元 给定 n 组 ai,pi,其中 pi 是质数,求 ai 模 pi 的乘法逆元,若逆元不存在则输出 impossible。 #include<iostream> #include<algorithm> using namespace std; typedef long long ll; // a^k mod p int qmi(int a...

保研机试训练Day-18

欧拉函数 && 快速幂

数论 欧拉函数 给定 n 个正整数 ai,请你求出每个数的欧拉函数。 #include<iostream> #include<cmath> #include<algorithm> using namespace std; int main(){ int n; cin >> n; while(n--){ ...

保研机试训练Day-17

约数

数论 约数 试除法求约数 给定 n 个正整数 ai,对于每个整数 ai,请你按照从小到大的顺序输出它的所有约数。 #include<iostream> #include<cmath> #include<algorithm> #include<vector> using namespace std; int n; vector<int...