04 2022 档案
摘要:动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。 A 吃 B,B 吃 C,C 吃 A。 现有 N 个动物,以 1∼N 编号。 每个动物都是 A,B,C 中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这 N 个动物所构成的食物链关系进行描述: 第一种说法是 1 X
阅读全文
摘要:给定一个包含 n 个点(编号为 1∼n)的无向图,初始时图中没有边。 现在要进行 m 个操作,操作共有三种: C a b,在点 a 和点 b 之间连一条边,a 和 b 可能相等; Q1 a b,询问点 a 和点 b 是否在同一个连通块中,a 和 b 可能相等; Q2 a,询问点 a 所在连通块中点的
阅读全文
摘要:一共有 n 个数,编号是 1∼n,最开始每个数各自在一个集合中。 现在要进行 m 个操作,操作共有两种: M a b,将编号为 a 和 b 的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作; Q a b,询问编号为 a 和 b 的两个数是否在同一个集合中; 输入格式 第一行输入整
阅读全文
摘要:在给定的 N 个整数 A1,A2……AN 中选出两个进行 xor(异或)运算,得到的结果最大是多少? 输入格式 第一行输入一个整数 N。 第二行输入 N 个整数 A1~AN。 输出格式 输出一个整数表示答案。 数据范围 1≤N≤105, 0≤Ai<231 输入样例: 3 1 2 3 输出样例: 3
阅读全文
摘要:https://www.acwing.com/solution/content/5673/
阅读全文
摘要:小明家里有 n 个鸡蛋。 每天早上,小明都要吃 1 个鸡蛋作为早餐。 小明家里还有一个母鸡。 母鸡会在第 m,2m,3m… 天的晚上下蛋,每次只下 1 个蛋。 请问,连续多少天以后,小明就没有早餐鸡蛋吃了? 输入格式 一行两个整数 n,m。 输出格式 一个整数,表示答案。 数据范围 所有测试点满足
阅读全文
摘要:三个倒扣着的不透明小碗排成一排。 随机挑选一个小碗,将一个小球置于碗中。 然后进行 n 次操作,编号 1∼n。 对于第 i 次操作: 如果 imod2=1,则操作内容为将位于中间的碗和位于左边的碗交换位置。 如果 imod2=0,则操作内容为将位于中间的碗和位于右边的碗交换位置。 我们不妨用 0,1
阅读全文
摘要:给定一个大小为 n≤106 的数组。 有一个大小为 k 的滑动窗口,它从数组的最左边移动到最右边。 你只能在窗口中看到 k 个数字。 每次滑动窗口向右移动一个位置。 以下是一个例子: 该数组为 [1 3 -1 -3 5 3 6 7],k 为 3。 窗口位置 最小值 最大值 [1 3 -1] -3 5
阅读全文
摘要:给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。 输入格式 第一行包含整数 N,表示数列长度。 第二行包含 N 个整数,表示整数数列。 输出格式 共一行,包含 N 个整数,其中第 i 个数表示第 i 个数的左边第一个比它小的数,如果不存在则输出 −1。 数据范
阅读全文
摘要:实现一个队列,队列初始为空,支持四种操作: push x – 向队尾插入一个数 x; pop – 从队头弹出一个数; empty – 判断队列是否为空; query – 查询队头元素。 现在要对队列进行 M 个操作,其中的每个操作 3 和操作 4 都要输出相应的结果。 输入格式 第一行包含整数 M,
阅读全文
摘要:https://www.acwing.com/solution/content/40978/ #include<unordered_map> #include<iostream> #include<stack> #include<string> using namespace std; stack<
阅读全文
摘要:isalpha(c) 判断c是否为字母 islower(c) 判断c是否为小写 isupper(c) 判断c是否为大写 tolower(c) 字符转小写 toupper(c) 字符转大写 sort(起始地址,结束地址+1) 数组升序排序 reverse(起始地址,结束地址+1) 数组逆序 s.beg
阅读全文
摘要:实现一个栈,栈初始为空,支持四种操作: push x – 向栈顶插入一个数 x; pop – 从栈顶弹出一个数; empty – 判断栈是否为空; query – 查询栈顶元素。 现在要对栈进行 M 个操作,其中的每个操作 3 和操作 4 都要输出相应的结果。 输入格式 第一行包含整数 M,表示操作
阅读全文
摘要:实现一个双链表,双链表初始为空,支持 5 种操作: 在最左侧插入一个数; 在最右侧插入一个数; 将第 k 个插入的数删除; 在第 k 个插入的数左侧插入一个数; 在第 k 个插入的数右侧插入一个数 现在要对该链表进行 M 次操作,进行完所有操作后,从左到右输出整个链表。 注意:题目中第 k 个插入的
阅读全文
摘要:给定 n 个区间 [li,ri],要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如:[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。 输入格式 第一行包含整数 n。 接下来 n 行,每行包含两个整数 l 和 r。 输出格式 共一行,包含一个
阅读全文
摘要:假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。 现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。 接下来,进行 m 次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r] 之间的所有数的和。 输入格式 第一行包含两个整数 n 和 m。 接下来 n 行,每
阅读全文
摘要:给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1 的个数。 输入格式 第一行包含整数 n。 第二行包含 n 个整数,表示整个数列。 输出格式 共一行,包含 n 个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表示中 1 的个数。 数据范围 1≤n≤100000, 0≤数列
阅读全文
摘要:给定一个长度为 n 的整数序列 a1,a2,…,an 以及一个长度为 m 的整数序列 b1,b2,…,bm。 请你判断 a 序列是否为 b 序列的子序列。 子序列指序列的一部分项按原有次序排列而得的序列,例如序列 {a1,a3,a5} 是序列 {a1,a2,a3,a4,a5} 的一个子序列。 输入格
阅读全文
摘要:给定两个升序排序的有序数组 A 和 B,以及一个目标值 x。 数组下标从 0 开始。 请你求出满足 A[i]+B[j]=x 的数对 (i,j)。 数据保证有唯一解。 输入格式 第一行包含三个整数 n,m,x,分别表示 A 的长度,B 的长度以及目标值 x。 第二行包含 n 个整数,表示数组 A。 第
阅读全文
摘要:###根据算术基本定理推出(因为唯一一个偶素数是二):如果一个数n是2的幂,则该数无奇数因子。 ###可用n&(n-1)来判断,因为2的幂只在二进制的某一位有值,而(n-1)在除了该位的其他位有值 ###所以如果该数是2的幂,n&(n-1)=0 #include<iostream> #include
阅读全文
摘要:给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。 输入格式 第一行包含整数 n。 第二行包含 n 个整数(均在 0∼105 范围内),表示整数序列。 输出格式 共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。 数据范围 1≤n≤105 输入样例:
阅读全文