算法基础复习
awing yyds
追寻远方的人
你的职责是平整土地,而非焦虑时光。
展开
-
125. 耍杂技的牛
125. 耍杂技的牛农民约翰的 N 头奶牛(编号为 1…N)计划逃跑并加入马戏团,为此它们决定练习表演杂技。奶牛们不是非常有创意,只提出了一个杂技表演:叠罗汉,表演时,奶牛们站在彼此的身上,形成一个高高的垂直堆叠。奶牛们正在试图找到自己在这个堆叠中应该所处的位置顺序。这 N 头奶牛中的每一头都有着自己的重量 Wi 以及自己的强壮程度 SiSi。一头牛支撑不住的可能性取决于它头上所有牛的总重量(不包括它自己)减去它的身体强壮程度的值,现在称该数值为风险值,风险值越大,这只牛撑不住的可能性越高。您原创 2022-01-30 22:50:36 · 357 阅读 · 0 评论 -
104. 货仓选址
104. 货仓选址在一条数轴上有 NN 家商店,它们的坐标分别为A1∼AN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。输入格式第一行输入整数 N。第二行 N 个整数 A1∼AN。输出格式输出一个整数,表示距离之和的最小值。数据范围1≤N≤100000,0≤Ai≤40000输入样例:46 2 9 1输出样例:12代码:#include <bits/stdc++.h原创 2022-01-30 22:49:38 · 920 阅读 · 0 评论 -
913. 排队打水
913. 排队打水有 n 个人排队到 1 个水龙头处打水,第 i 个人装满水桶所需的时间是 ti,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小?输入格式第一行包含整数 n。第二行包含 n 个整数,其中第 i 个整数表示第 i 个人装满水桶所花费的时间 ti。输出格式输出一个整数,表示最小的等待时间之和。数据范围1≤n≤105,1≤ti≤104输入样例:73 6 1 4 2 5 7输出样例:56代码:#include <bits/stdc++.h>原创 2022-01-30 22:48:56 · 1328 阅读 · 0 评论 -
148. 合并果子
148. 合并果子在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。达达决定把所有的果子合成一堆。每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n−1 次合并之后,就只剩下一堆了。达达在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以达达在合并果子时要尽可能地节省体力。假定每个果子重量都为 1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使达达原创 2022-01-30 22:48:25 · 67 阅读 · 0 评论 -
907. 区间覆盖
907. 区间覆盖给定 N 个闭区间 [ai,bi] 以及一个线段区间 [s,t],请你选择尽量少的区间,将指定线段区间完全覆盖。输出最少区间数,如果无法完全覆盖则输出 −1。输入格式第一行包含两个整数 s 和 t,表示给定线段区间的两个端点。第二行包含整数 N,表示给定区间数。接下来 N 行,每行包含两个整数 ai,bi,表示一个区间的两个端点。输出格式输出一个整数,表示所需最少区间数。如果无解,则输出 −1。数据范围1≤N≤105,−109≤ai≤bi≤109,−109≤s≤t原创 2022-01-30 22:47:50 · 85 阅读 · 0 评论 -
906. 区间分组
906. 区间分组给定 N 个闭区间 [ai,bi],请你将这些区间分成若干组,使得每组内部的区间两两之间(包括端点)没有交集,并使得组数尽可能小。输出最小组数。输入格式第一行包含整数 N,表示区间数。接下来 N 行,每行包含两个整数 ai,bi,表示一个区间的两个端点。输出格式输出一个整数,表示最小组数。数据范围1≤N≤105,−109≤ai≤bi≤109输入样例:3-1 12 43 5输出样例:2代码:/*区间分组,在组内区间不相交的前提下,分成尽可能少的组。原创 2022-01-30 22:47:22 · 173 阅读 · 1 评论 -
908. 最大不相交区间数量
908. 最大不相交区间数量给定 N 个闭区间 [ai,bi],请你在数轴上选择若干区间,使得选中的区间之间互不相交(包括端点)。输出可选取区间的最大数量。输入格式第一行包含整数 N,表示区间数。接下来 N 行,每行包含两个整数 ai,bi,表示一个区间的两个端点。输出格式输出一个整数,表示可选取区间的最大数量。数据范围1≤N≤105,−109≤ai≤bi≤109输入样例:3-1 12 43 5输出样例:2代码:/*1.将区间按照右端点从小到大进行排序;2.维护原创 2022-01-30 22:46:44 · 558 阅读 · 0 评论 -
905. 区间选点
905. 区间选点给定 N 个闭区间 [ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。位于区间端点上的点也算作区间内。输入格式第一行包含整数 N,表示区间数。接下来 N 行,每行包含两个整数 ai,bi,表示一个区间的两个端点。输出格式输出一个整数,表示所需的点的最小数量。数据范围1≤N≤105,−109≤ai≤bi≤109输入样例:3-1 12 43 5输出样例:2代码:/*证明ans<=cnt :原创 2022-01-30 22:46:11 · 391 阅读 · 0 评论 -
901. 滑雪
901. 滑雪给定一个 R 行 C 列的矩阵,表示一个矩形网格滑雪场。矩阵中第 i 行第 j 列的点表示滑雪场的第 i 行第 j 列区域的高度。一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。下面给出一个矩阵作为例子:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9在给定矩阵中,一条可行的滑行轨原创 2022-01-28 22:55:07 · 109 阅读 · 0 评论 -
285. 没有上司的舞会
285. 没有上司的舞会Ural 大学有 N 名职员,编号为 1∼N。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。输入格式第一行一个整数 N。接下来 N 行,第 i 行表示 i 号职员的快乐指数 Hi。接下来 N−1 行,每行输入一对整数 L,K原创 2022-01-28 22:54:38 · 83 阅读 · 0 评论 -
91. 最短Hamilton路径
91. 最短Hamilton路径给定一张 n 个点的带权无向图,点从 0∼n−1 标号,求起点 0 到终点 n−1 的最短 Hamilton 路径。Hamilton 路径的定义是从 0 到 n−1 不重不漏地经过每个点恰好一次。输入格式第一行输入整数 n。接下来 n 行每行 n 个整数,其中第 i 行第 j 个整数表示点 i 到 j 的距离(记为 a[i,j])。对于任意的 x,y,z,数据保证 a[x,x]=0,a[x,y]=a[y,x] 并且 a[x,y]+a[y,z]≥a[x,z]。输出原创 2022-01-28 22:54:03 · 141 阅读 · 0 评论 -
291. 蒙德里安的梦想
291. 蒙德里安的梦想求把 N×M 的棋盘分割成若干个 1×2 的的长方形,有多少种方案。例如当 N=2,M=4 时,共有 5 种方案。当 N=2,M=3 时,共有 3 种方案。如下图所示:输入格式输入包含多组测试用例。每组测试用例占一行,包含两个整数 N 和 M。当输入用例 N=0,M=0 时,表示输入终止,且该用例无需处理。输出格式每个测试用例输出一个结果,每个结果占一行。数据范围1≤N,M≤11输入样例:1 21 31 42 22 32 42 114 11原创 2022-01-28 22:53:31 · 879 阅读 · 0 评论 -
338. 计数问题
338. 计数问题给定两个整数 a 和 b,求 a 和 b 之间的所有数字中 0∼9 的出现次数。例如,a=1024,b=1032,则 a 和 b 之间共有 9 个数如下:1024 1025 1026 1027 1028 1029 1030 1031 1032其中 0 出现 10 次,1 出现 10 次,2 出现 7 次,3 出现 3 次等等…输入格式输入包含多组测试数据。每组测试数据占一行,包含两个整数 a 和 b。当读入一行为 0 0 时,表示输入终止,且该行不作处理。输出格式每组原创 2022-01-28 22:52:32 · 225 阅读 · 0 评论 -
900. 整数划分
900. 整数划分一个正整数 nn 可以表示成若干个正整数之和,形如:n=n1+n2+…+nk,其中 n1≥n2≥…≥nk,k≥1。我们将这样的一种表示称为正整数 n 的一种划分。现在给定一个正整数 n,请你求出 n 共有多少种不同的划分方法。输入格式共一行,包含一个整数 n。输出格式共一行,包含一个整数,表示总划分数量。由于答案可能很大,输出结果请对 109+7 取模。数据范围1≤n≤1000输入样例:5输出样例:7代码1:/*完全背包解法状态表示:f[i][j]原创 2022-01-28 22:51:35 · 476 阅读 · 0 评论 -
282. 石子合并
282. 石子合并设有 N 堆石子排成一排,其编号为 1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这 N 堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有 4 堆石子分别为 1 3 5 2, 我们可以先合并 1、2 堆,代价为 4,得到 4 5 2, 又合并 1,2 堆,代价为 9,得到 9 2 ,再合并得到 11,总代价为 4+9+11=24;原创 2022-01-27 13:57:02 · 71 阅读 · 0 评论 -
902. 最短编辑距离
902. 最短编辑距离给定两个字符串 A 和 B,现在要将 A 经过若干操作变为 B,可进行的操作有:删除–将字符串 A 中的某个字符删除。插入–在字符串 A 的某个位置插入某个字符。替换–将字符串 A 中的某个字符替换为另一个字符。现在请你求出,将 A 变为 B 至少需要进行多少次操作。输入格式第一行包含整数 n,表示字符串 A 的长度。第二行包含一个长度为 n 的字符串 A。第三行包含整数 m,表示字符串 B 的长度。第四行包含一个长度为 m 的字符串 B。字符串中均只包含大写原创 2022-01-27 13:56:24 · 55 阅读 · 0 评论 -
902. 最短编辑距离
902. 最短编辑距离给定两个字符串 A 和 B,现在要将 A 经过若干操作变为 B,可进行的操作有:删除–将字符串 A 中的某个字符删除。插入–在字符串 A 的某个位置插入某个字符。替换–将字符串 A 中的某个字符替换为另一个字符。现在请你求出,将 A 变为 B 至少需要进行多少次操作。输入格式第一行包含整数 n,表示字符串 A 的长度。第二行包含一个长度为 n 的字符串 A。第三行包含整数 m,表示字符串 B 的长度。第四行包含一个长度为 m 的字符串 B。字符串中均只包含大写原创 2022-01-27 13:56:01 · 596 阅读 · 0 评论 -
897. 最长公共子序列
897. 最长公共子序列给定两个长度分别为 N 和 M 的字符串 A 和 B,求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。输入格式第一行包含两个整数 N 和 M。第二行包含一个长度为 N 的字符串,表示字符串 A。第三行包含一个长度为 M 的字符串,表示字符串 B。字符串均由小写字母构成。输出格式输出一个整数,表示最大长度。数据范围1≤N,M≤1000输入样例:4 5acbdabedc输出样例:3思路:(f[i-1] [j] = 00 + 01原创 2022-01-27 13:53:49 · 84 阅读 · 0 评论 -
896. 最长上升子序列 II
896. 最长上升子序列 II给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数 N。第二行包含 N 个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤100000,−109≤数列中的数≤109输入样例:73 1 2 1 8 5 6输出样例:4思路:贪心思路:较小的数开头的数作为的子序列 比 较大的数作为开头的子序列 更好贪心步骤:开一个数组q[i],存的是以长度为i的上升子序列中末尾元素最小的数,原创 2022-01-27 13:52:51 · 203 阅读 · 0 评论 -
895. 最长上升子序列
895. 最长上升子序列给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数 N。第二行包含 N 个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤1000,−109≤数列中的数≤109输入样例:73 1 2 1 8 5 6输出样例:4思路:状态表示:f[i]表示从第一个数字开始算,以a[i]结尾的最大的上升序列。(以a[i]结尾的所有上升序列中属性为最大值的那一个)状态计算(集合划分):j∈(0,1,2原创 2022-01-27 13:52:19 · 289 阅读 · 0 评论 -
898. 数字三角形
898. 数字三角形给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1 0 2 7 4 44 5 2 6 5输入格式第一行包含整数 n,表示数字三角形的层数。接下来 n 行,每行包含若干整数,其中第 i 行表示数字三角形第 i 层包含的整数。输出格式输出一个整数,表示最大的路径数字和原创 2022-01-27 13:51:46 · 61 阅读 · 0 评论 -
9. 分组背包问题
9. 分组背包问题有 N 组物品和一个容量是 V 的背包。每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 vij,价值是 wij,其中 i 是组号,j 是组内编号。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行有两个整数 N,V,用空格隔开,分别表示物品组数和背包容量。接下来有 N 组数据:每组数据第一行有一个整数 Si,表示第 i 个物品组的物品数量;每组数据接下来有 Si 行,每行有两个整数 vij,wij,用空格隔原创 2022-01-25 20:42:10 · 143 阅读 · 0 评论 -
5. 多重背包问题 II
5. 多重背包问题 II有 N 种物品和一个容量是 V 的背包。第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行三个整数 vi,wi,si,用空格隔开,分别表示第 i 种物品的体积、价值和数量。输出格式输出一个整数,表示最大价值。数据范围0<N≤10000<V≤20000<原创 2022-01-25 20:41:19 · 88 阅读 · 0 评论 -
4. 多重背包问题 I
4. 多重背包问题 I有 N 种物品和一个容量是 V 的背包。第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行三个整数 vi,wi,si,用空格隔开,分别表示第 i 种物品的体积、价值和数量。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤1000<vi,wi,si≤10原创 2022-01-25 20:40:42 · 233 阅读 · 0 评论 -
3. 完全背包问题
3. 完全背包问题有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。第 i 种物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 种物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,wi≤1000输入样例原创 2022-01-25 20:40:09 · 350 阅读 · 0 评论 -
2. 01背包问题
2. 01背包问题有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,wi≤1000输入样例原创 2022-01-25 20:39:40 · 72 阅读 · 0 评论 -
894. 拆分-Nim游戏
894. 拆分-Nim游戏给定 nn 堆石子,两位玩家轮流操作,每次操作可以取走其中的一堆石子,然后放入两堆规模更小的石子(新堆规模可以为 0,且两个新堆的石子总数可以大于取走的那堆石子数),最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。输入格式第一行包含整数 n。第二行包含 n 个整数,其中第 i 个整数表示第 i 堆石子的数量 ai。输出格式如果先手方必胜,则输出 Yes。否则,输出 No。数据范围1≤n,ai≤100输入样例:22 3输出样例:Y原创 2022-01-24 12:03:53 · 2113 阅读 · 0 评论 -
893. 集合-Nim游戏
893. 集合-Nim游戏给定 n 堆石子以及一个由 k 个不同正整数构成的数字集合 S。现在有两位玩家轮流操作,每次操作可以从任意一堆石子中拿取石子,每次拿取的石子数量必须包含于集合 S,最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。输入格式第一行包含整数 k,表示数字集合 S 中数字的个数。第二行包含 k 个整数,其中第 i 个整数表示数字集合 S 中的第 i 个数 si。第三行包含整数 n。第四行包含 n 个整数,其中第 i 个整数表示第 i 堆石子的数量 hi原创 2022-01-24 12:03:21 · 104 阅读 · 0 评论 -
892. 台阶-Nim游戏
892. 台阶-Nim游戏现在,有一个 n 级台阶的楼梯,每级台阶上都有若干个石子,其中第 i 级台阶上有 ai 个石子(i≥1)。两位玩家轮流操作,每次操作可以从任意一级台阶上拿若干个石子放到下一级台阶中(不能不拿)。已经拿到地面上的石子不能再拿,最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。输入格式第一行包含整数 n。第二行包含 n 个整数,其中第 i 个整数表示第 i 级台阶上的石子数 ai。输出格式如果先手方必胜,则输出 Yes。否则,输出 No。数据范原创 2022-01-24 12:02:52 · 183 阅读 · 0 评论 -
891. Nim游戏
891. Nim游戏给定 n 堆石子,两位玩家轮流操作,每次操作可以从任意一堆石子中拿走任意数量的石子(可以拿完,但不能不拿),最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。输入格式第一行包含整数 n。第二行包含 n 个数字,其中第 i 个数字表示第 i 堆石子的数量。输出格式如果先手方必胜,则输出 Yes。否则,输出 No。数据范围1≤n≤105,1≤每堆石子数≤109输入样例:22 3输出样例:Yes先手必胜态:可以走到某一个必败状态先手必原创 2022-01-24 12:02:17 · 2181 阅读 · 0 评论 -
890. 能被整除的数
890. 能被整除的数给定一个整数 n 和 m 个不同的质数 p1,p2,…,pm。请你求出 1∼n 中能被 p1,p2,…,pm 中的至少一个数整除的整数有多少个。输入格式第一行包含整数 n 和 m。第二行包含 m 个质数。输出格式输出一个整数,表示满足条件的整数的个数。数据范围1≤m≤16,1≤n,pi≤109输入样例:10 22 3输出样例:7代码:#include <bits/stdc++.h>using namespace std;con原创 2022-01-24 12:01:38 · 167 阅读 · 0 评论 -
889. 满足条件的01序列
889. 满足条件的01序列给定 n 个 0 和 n 个 1,它们将按照某种顺序排成长度为 2n 的序列,求它们能排列成的所有序列中,能够满足任意前缀序列中 0 的个数都不少于 1 的个数的序列有多少个。输出的答案对 109+7 取模。输入格式共一行,包含整数 n。输出格式共一行,包含一个整数,表示答案。数据范围1≤n≤105输入样例:3输出样例:5代码:#include <bits/stdc++.h>using namespace std;typedef原创 2022-01-24 12:01:07 · 183 阅读 · 0 评论 -
888. 求组合数 IV
888. 求组合数 IV输入 a,b,求 Cba 的值。注意结果可能很大,需要使用高精度计算。输入格式共一行,包含两个整数 a 和 b。输出格式共一行,输出 Cba 的值。数据范围1≤b≤a≤5000输入样例:5 3输出样例:10代码:/*第一步:筛素数(1-5000)第二步:求每个质数的一个次数第三步:用高精度乘法把所有质因子乘一起*/#include <bits/stdc++.h>using namespace std;const int原创 2022-01-24 12:00:31 · 105 阅读 · 0 评论 -
887. 求组合数 III
887. 求组合数 III给定 n 组询问,每组询问给定三个整数 a,b,p,其中 p 是质数,请你输出 Cbamodp 的值。输入格式第一行包含整数 n。接下来 n 行,每行包含一组 a,b,p。输出格式共 n 行,每行输出一个询问的解。数据范围1≤n≤20,1≤b≤a≤1e18,1≤p≤1e5,输入样例:35 3 73 1 56 4 13输出样例:332代码:/*Cba=a!/(a−b)!∗b!=a∗(a−1)∗(a−2)∗…∗(a−b+1)∗(a−原创 2022-01-24 11:59:58 · 98 阅读 · 0 评论 -
886. 求组合数 II
886. 求组合数 II给定 n 组询问,每组询问给定两个整数 a,b,请你输出 Cbamod(1e9+7) 的值。输入格式第一行包含整数 n。接下来 n 行,每行包含一组 a 和 b。输出格式共 n 行,每行输出一个询问的解。数据范围1≤n≤1e4,1≤b≤a≤1e5输入样例:33 15 32 2输出样例:3101代码://预处理阶乘#include <bits/stdc++.h>using namespace std;const int原创 2022-01-24 11:59:24 · 255 阅读 · 0 评论 -
885. 求组合数 I
885. 求组合数 I给定 n 组询问,每组询问给定两个整数 a,b,请你输出 Cbamod(1e9+7) 的值。输入格式第一行包含整数 n。接下来 n 行,每行包含一组 a 和 b。输出格式共 n 行,每行输出一个询问的解。数据范围1≤n≤1e4,1≤b≤a≤2e3输入样例:33 15 32 2输出样例:3101代码:#include <bits/stdc++.h>using namespace std;const int N = 2010原创 2022-01-24 11:58:53 · 136 阅读 · 0 评论 -
884. 高斯消元解异或线性方程组
884. 高斯消元解异或线性方程组输入一个包含 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][n]x[n] = B[2]…M[n][1]x[1] ^ M[n][2]x[2] ^ … ^ M[n][n]x[n] = B原创 2022-01-23 20:50:47 · 194 阅读 · 0 评论 -
883. 高斯消元解线性方程组
883. 高斯消元解线性方程组输入一个包含 n 个方程 n 个未知数的线性方程组。方程组中的系数为实数。求解这个方程组。下图为一个包含 m 个方程 n 个未知数的线性方程组示例:输入格式第一行包含整数 n。接下来 n 行,每行包含 n+1 个实数,表示一个方程的 n 个系数以及等号右侧的常数。输出格式如果给定线性方程组存在唯一解,则输出共 n 行,其中第 i 行输出第 i 个未知数的解,结果保留两位小数。如果给定线性方程组存在无数解,则输出 Infinite group solutio原创 2022-01-23 20:50:17 · 140 阅读 · 0 评论 -
204. 表达整数的奇怪方式
204. 表达整数的奇怪方式给定 2n 个整数 a1,a2,…,an 和 m1,m2,…,mn,求一个最小的非负整数 x,满足 ∀i∈[1,n],x≡mi(mod ai)。输入格式第 1 行包含整数 n。第 2…n+1 行:每 i+1 行包含两个整数 ai 和 mi,数之间用空格隔开。输出格式输出最小非负整数 x,如果 x 不存在,则输出 −1。如果存在 x,则数据保证 x 一定在 64 位整数范围内。数据范围1≤ai≤231−1,0≤mi<ai1≤n≤25输入样例:28原创 2022-01-23 20:49:40 · 422 阅读 · 0 评论 -
878. 线性同余方程
878. 线性同余方程给定 n 组数据 ai,bi,mi,对于每组数求出一个 xi,使其满足 ai×xi≡bi(modmi),如果无解则输出 impossible。输入格式第一行包含整数 n。接下来 n 行,每行包含一组数据 ai,bi,mi。输出格式输出共 n 行,每组数据输出一个整数表示一个满足条件的 xi,如果无解则输出 impossible。每组数据结果占一行,结果可能不唯一,输出任意一个满足条件的结果均可。输出答案必须在 int 范围之内。数据范围1≤n≤105,1≤ai,b原创 2022-01-23 20:48:56 · 95 阅读 · 0 评论