04 2023 档案
摘要:中国剩余定理: 代码实现: //互质版中国剩余定理(CRT) #include<iostream> using namespace std; typedef long long LL; const int N=20; LL a[N], b[N]; int n; void exgcd(LL a, LL
阅读全文
摘要:整除的概念和性质: 素数和合数的定义: 例题一:
阅读全文
摘要:欧几里得算法基本原理和证明 代码实现: #include<iostream> using namespace std; int gcd(int a,int b){ return b?gcd(b,a%b):a; } int main(){ int x,y; cin>>x>>y; cout<<gcd(x
阅读全文
摘要:欧拉函数的定义: 公式法求欧拉函数代码实现: #include<iostream> using namespace std; int main(){ int t; cin>>t; while(t--){ int n; cin>>n; int res=n; for(int i=2;i<=n/i;i++
阅读全文
摘要:约数个数和约数之和推导: 约数个数代码实现: 求n个数的乘积的约数个数: #include<iostream> #include<unordered_map> using namespace std; #define int long long const int p=1e9+7; unordere
阅读全文
摘要:筛质数: 朴素筛法代码实现: #include<iostream> using namespace std; const int N=1e5+5; int prime[N],vis[N],cnt; void init(int n){ for(int i=2;i<=n;i++){ if(!vis[i]
阅读全文
摘要:给定一个非空的树,树根为 R。 树中每个节点 Ti 的权重为 Wi。 从 R 到 L 的路径权重定义为从根节点 R 到任何叶节点 L 的路径中包含的所有节点的权重之和。 现在给定一个加权树以及一个给定权重数字,请你找出树中所有的权重等于该数字的路径(必须从根节点到叶节点)。 例如,我们考虑下图的树,
阅读全文
摘要:通过使用栈可以以非递归方式实现二叉树的中序遍历。 例如,假设遍历一个如下图所示的 6 节点的二叉树(节点编号从 1 到 6)。 则堆栈操作为:push(1); push(2); push(3); pop(); pop(); push(4); pop(); pop(); push(5); push(6
阅读全文
摘要:二叉搜索树 (BST) 递归定义为具有以下属性的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值 若它的右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值 它的左、右子树也分别为二叉搜索树 完全二叉树 (CBT) 定义为除最深层外的其他层的结点数都达到最大个数,最深层
阅读全文
摘要:假设一个二叉树上所有结点的权值都互不相同。 我们可以通过后序遍历和中序遍历来确定唯一二叉树。 也可以通过前序遍历和中序遍历来确定唯一二叉树。 但是,如果只通过前序遍历和后序遍历,则有可能无法确定唯一二叉树。 现在,给定一组前序遍历和后序遍历,请你输出对应二叉树的中序遍历。 如果树不是唯一的,则输出任
阅读全文
摘要:二叉搜索树 (BST) 递归定义为具有以下属性的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值 它的左、右子树也分别为二叉搜索树 将一系列数字按顺序插入到一个空的二叉搜索树中,然后,请你计算结果树的最低两层的
阅读全文
摘要:给定一个树,请你判断它是否是完全二叉树。 输入格式 第一行包含整数 N,表示树的结点个数。 树的结点编号为 0∼N−1。 接下来 N 行,每行对应一个结点,并给出该结点的左右子结点的编号,如果某个子结点不存在,则用 - 代替。 输出格式 如果是完全二叉树,则输出 YES 以及最后一个结点的编号。 如
阅读全文
摘要:供应链是由零售商,经销商和供应商构成的销售网络,每个人都参与将产品从供应商转移到客户的过程。 整个销售网络可以看作一个树形结构,从根部的供应商往下,每个人从上一级供应商中买入商品后,假定买入价格为 P,则会以高出买入价 r% 的价格向下出售。 只有零售商(即叶节点)可以直接将产品销售给顾客。 现在,
阅读全文
摘要:以下是来自 Max Howell @twitter 的内容: 谷歌:我们的百分之九十的工程师都使用你编写的软件,但是你连在白板上反转二叉树都做不到,还是滚吧。 现在,请你证明你会反转二叉树。 输入格式 第一行包含一个整数 N,表示树的结点数量。 所有结点编号从 0 到 N−1。 接下来 N 行,每行
阅读全文
摘要:二叉搜索树 (BST) 递归定义为具有以下属性的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值 若它的右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值 它的左、右子树也分别为二叉搜索树 给定二叉树的具体结构以及一系列不同的整数,只有一种方法可以将这些数填充到树中,
阅读全文
摘要:供应链是由零售商,经销商和供应商构成的销售网络,每个人都参与将产品从供应商转移到客户的过程。 整个销售网络可以看作一个树形结构,从根部的供应商往下,每个人从上一级供应商中买入商品后,假定买入价格为 P,则会以高出买入价 r% 的价格向下出售。 只有零售商(即叶节点)可以直接将产品销售给顾客。 现在,
阅读全文
摘要:供应链是由零售商,经销商和供应商构成的销售网络,每个人都参与将产品从供应商转移到客户的过程。 整个销售网络可以看作一个树形结构,从根部的供应商往下,每个人从上一级供应商中买入商品后,假定买入价格为 P,则会以高出买入价 r% 的价格向下出售。 只有零售商(即叶节点)可以直接将产品销售给顾客。 现在,
阅读全文
摘要:二叉搜索树 (BST) 递归定义为具有以下属性的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值 若它的右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值 它的左、右子树也分别为二叉搜索树 我们将二叉搜索树镜面翻转得到的树称为二叉搜索树的镜像。 现在,给定一个整数序列
阅读全文
摘要:一个无环连通图可以被视作一个树。 树的高度取决于所选取的根节点。 现在,你要找到可以使得树的高度最大的根节点。 它被称为最深的根。 输入格式 第一行包含整数 N,表示节点数量。 节点编号为 1∼N。 接下来 N−1 行,每行包含两个整数,表示两个节点之间存在一条边。 输出格式 输出最深的根的节点编号
阅读全文
摘要:假设一个二叉树上所有结点的权值都互不相同。 我们可以通过后序遍历和中序遍历来确定唯一二叉树。 也可以通过前序遍历和中序遍历来确定唯一二叉树。 但是,如果只通过前序遍历和后序遍历,则有可能无法确定唯一二叉树。 现在,给定一组前序遍历和后序遍历,请你输出对应二叉树的中序遍历。 如果树不是唯一的,则输出任
阅读全文
摘要:有诗云: 相思 (王维 唐) 红豆生南国, 春来发几枝。 愿君多采撷, 此物最相思。 那么,我们来采红豆吧! 假设红豆树是这个样子的: 这种红豆树的特点是: 每个结点都有一个正整数编号,标在结点内部。结点的编号各不相同。 最上方一层结点是 “红豆”(图中红圈所示的5个结点),这一层被称之为红豆层。
阅读全文
摘要:7-1 聪明一点的拖长音 题目描述 输入一行字符,去掉空格,在每个单词最后一个字母处加一个-。 输入格式: 输入一行字符,中间有若干空格,字符数不超过100个。 输出格式: 输出这行的所有英文字母,在每个单词末尾加一个-。注:单词是指由大写或小写英文字母组成的一个词。 输入样例: I am a gi
阅读全文
摘要:题目描述: 以上图片来自新浪微博。 本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是: 无论用户说什么,首先把对方说的话在一行中原样打印出来; 消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉; 把原文中所有大写英文字母变成小
阅读全文
摘要:题目描述: 假定有n个城堡,编号为1至n,有的城堡之间有道路直接相连,有的城堡之间没有道路直接相连。马里奥现在准备从一个城堡出发前往另一个城堡,它有一个魔法棒,可以瞬时通过一条道路,即以0时间通过这条道路,但魔法棒最多只能用一次。马里奥想以最短的时间到达目的地,请编写程序为马里奥选定一条路线以及在什
阅读全文
摘要:家庭关系可以用家谱树来表示,同一层上的所有结点都属于同一代人。 请你找出人数最多的一代。 输入格式 第一行包含一个整数 N 表示树中结点总数以及一个整数 M 表示非叶子结点数。 接下来 M 行,每行的格式为: ID K ID[1] ID[2] ... ID[K] ID 是一个两位数字,表示一个非叶子
阅读全文
摘要:一个二叉树,树中每个节点的权值互不相同。 现在给出它的后序遍历和中序遍历,请你输出它的层序遍历。 输入格式 第一行包含整数 N,表示二叉树的节点数。 第二行包含 N 个整数,表示二叉树的后序遍历。 第三行包含 N 个整数,表示二叉树的中序遍历。 输出格式 输出一行 N 个整数,表示二叉树的层序遍历。
阅读全文
摘要:家庭关系可以用家谱树来表示,给定一个家谱树,你的任务是找出其中没有孩子的成员。 输入格式 第一行包含一个整数 N 表示树中结点总数以及一个整数 M 表示非叶子结点数。 接下来 M 行,每行的格式为: ID K ID[1] ID[2] ... ID[K] ID 是一个两位数字,表示一个非叶子结点编号,
阅读全文
摘要:题目描述: 智能护理中心系统将辖下的护理点分属若干个大区,例如华东区、华北区等;每个大区又分若干个省来进行管理;省又分市,等等。我们将所有这些有管理或护理功能的单位称为“管理结点”。现在已知每位老人由唯一的一个管理结点负责,每个管理结点属于唯一的上级管理结点管辖。你需要实现一个功能,来统计任何一个管
阅读全文
摘要:1.中缀表达式转前缀表达式 转换规则: 1.初始化两个栈:运算符栈S1和储存中间结果的栈S2;2.从右至左扫描中缀表达式;3.遇到操作数时,将其压入S2;4.遇到运算符时,比较其与S1栈顶运算符的优先级: 4.1 如果S1为空,或栈顶运算符为右括号“)”,则直接将此运算符入栈; 4.2 否则,若优先
阅读全文
摘要:F. Bracket Sequence time limit per test 0.5 seconds memory limit per test 256 megabytes input standard input output standard output A balanced bracket
阅读全文
摘要:卡特兰数公式: 或者 引例1、(姐妹洗碗问题) 思考过程: 横坐标表示姐姐洗完的碗的个数,纵坐标表示妹妹摞碗的个数,前提条件为妹妹摞碗的个数不能超过姐姐洗完的碗的个数,要求摞法的方案数实际上是求从坐标(0,0)到坐标(5,5)的所有满足条件的路径数。 引例2、(进出栈问题) 思考过程: 本质上和姐妹
阅读全文
摘要:给定长度为 N 的数列 A,以及 M 条指令,每条指令可能是以下两种之一: 1 x y,查询区间 [x,y] 中的最大连续子段和, 2 x y,把 A[x]改成 y。 对于每个查询指令,输出一个整数表示答案。 输入格式 第一行两个整数 N,M。 第二行 N 个整数 A[i]。 接下来 M 行每行 3
阅读全文
摘要:给定一个正整数数列 a1,a2,…,an,每一个数都在 0∼p−1之间。 可以对这列数进行两种操作: 添加操作:向序列后添加一个数,序列长度变成 n+1; 询问操作:询问这个序列中最后 L 个数中最大的数是多少。 程序运行的最开始,整数序列为空。 一共要对整数序列进行 m 次操作。 写一个程序,读入
阅读全文
摘要:题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某一个数加上 x 求出某区间每一个数的和 输入格式 第一行包含两个正整数 n,m,分别表示该数列数字的个数和操作的总个数。 第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。 接下来 m 行每行包含 33 个整
阅读全文
摘要:E. Blurred Pictures time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Damon loves to take
阅读全文
摘要:D. Master of Shuangpin time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output As you know, there
阅读全文
摘要:总公司拥有 M 台 相同 的高效设备,准备分给下属的 N 个分公司。 各分公司若获得这些设备,可以为国家提供一定的盈利。盈利与分配的设备数量有关。 问:如何分配这M台设备才能使国家得到的盈利最大? 求出最大盈利值。 分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数 M。 输入格式 第一
阅读全文
摘要:有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出 字典序最小的方案。这里的字典序是指:所选物品的编号所构成的序列。物品的编号范围是 1…N。 输入格式 第一行
阅读全文
摘要:小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元。 问小明有多少种买书方案?(每种书可购买多本) 输入格式 一个整数 n,代表总共钱数。 输出格式 一个整数,代表选择方案种数。 数据范围 0≤n≤1000 输入样例1: 20 输出样例1: 2 输入样例2: 15 输出样例2:
阅读全文
摘要:为了庆贺班级在校运动会上取得全校第一名成绩,班主任决定开一场庆功会,为此拨款购买奖品犒劳运动员。 期望拨款金额能购买最大价值的奖品,可以补充他们的精力和体力。 输入格式 第一行二个数n,m,其中n代表希望购买的奖品的种数,m表示拨款金额。 接下来n行,每行3个数,v、w、s,分别表示第I种奖品的价格
阅读全文
摘要:给定 N 个正整数 A1,A2,…,AN,从中选出若干个数,使它们的和为 M,求有多少种选择方案。 输入格式 第一行包含两个整数 N 和 M。 第二行包含 N 个整数,表示 A1,A2,…,AN。 输出格式 包含一个整数,表示可选方案数。 数据范围 1≤N≤100,1≤M≤10000,1≤Ai≤10
阅读全文
摘要:宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事。 一天,小智和皮卡丘来到了小精灵狩猎场,里面有很多珍贵的野生宠物小精灵。 小智也想收服其中的一些小精灵。 然而,野生的小精灵并不那么容易被收服。 对于每一个野生小精灵而言,小智可能需要使用很多个精灵球才能收服它,而在收服过程中,野生小精灵也会对
阅读全文
摘要:有 N 件物品和一个容量是 V 的背包,背包能承受的最大重量是 M。 每件物品只能用一次。体积是 vi,重量是 mi,价值是 wi。 求解将哪些物品装入背包,可使物品总体积不超过背包容量,总重量不超过背包可承受的最大重量,且价值总和最大。输出最大价值。 输入格式 第一行三个整数,N,V,M,用空格隔
阅读全文
摘要:有一个箱子容量为 V,同时有 n 个物品,每个物品有一个体积(正整数)。 要求 n 个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 输入格式 第一行是一个整数 V,表示箱子容量。 第二行是一个整数 n,表示物品数。 接下来 n 行,每行一个正整数(不超过10000),分别表示这 n 个物品的
阅读全文
摘要:辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。 为此,他想拜附近最有威望的医师为师。 医师为了判断他的资质,给他出了一个难题。 医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,
阅读全文
摘要:有 N 组物品和一个容量是 V的背包。 每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 vij,价值是 wij,其中 i 是组号,j是组内编号。 求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行有两个整数 N,V,用空格隔开,分
阅读全文
摘要:有 N 种物品和一个容量是 V的背包。 第 i种物品最多有 si 件,每件体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。 接下来有 N行,每行三个整数 v
阅读全文
摘要:有 N 种物品和一个容量是 V的背包,每种物品都有无限件可用。 第 i种物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。 接下来有 N行,每行两个整
阅读全文
摘要:有 N 件物品和一个容量是 V的背包。每件物品只能使用一次。 第 i件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。 接下来有 N行,每行两个整数
阅读全文