ACM算法刷题
Violent-Ayang
春风若有怜花意,可否许我再少年
展开
-
1350 造海船
明朝郑和下西洋,需要建造庞大的海船,需要足够的木料,因为那时候没有钢铁制造的船,现在有 n 根原木,现在想把这些木头切割成 k 段长度均为 l 的小段木头(木头有可能有剩余),用来制造船的部件。当然,工匠希望得到的小段木头越长越好,这样可以让船更大一些不浪费木料,请求出 l 的最大值。原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。例如有两根原木长度分别为 11 和 21,要求切割成等长的 6 段,很明显能切割出来的小段木头长度最长为 5。原创 2024-01-20 17:26:38 · 545 阅读 · 0 评论 -
二维数组行列差
一个二维数组 a 的大小为 n×n。定义 b i为数组 a 中第 i 行元素的总和,而 c j为第 j 列元素的总和。接着,定义 d i 为第 i 行和列和的差的绝对值,即 ∣b i −c i ∣。给定这个二维数组 a,逐行输出所有 d i 的值,其中 1≤i≤n,每个 d i 的值输出在一行上。原创 2024-01-18 11:06:11 · 495 阅读 · 0 评论 -
[NOIP2003 普及组] 乒乓球
国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中 1111 分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白 1111 分制和 2121 分制对选手的不同影响。在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。原创 2024-01-17 22:50:49 · 883 阅读 · 0 评论 -
携带研究材料(第六期模拟笔试)
小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等,它们各自占据不同的空间,并且具有不同的价值。 小明的行李空间为 N,问小明应该如何抉择,才能携带最大价值的研究材料,每种研究材料只能选择一次,并且只有选与不选两种选择,不能进行切割。原创 2024-01-17 13:04:01 · 501 阅读 · 0 评论 -
7593 蜘蛛、蜻蜓与蝉(2)
描述蜘蛛有 8 条腿,蜻蜒有 6 条腿和 2 对翅,蝉有 6 条腿和 1 对翅。三种虫子共 18 只,共有 118 条腿和 20 对翅。问每种虫子各几只?输入描述三个正整数 m,n,p,表示三种虫子共多少只 m,共有多少条腿 n,共有多少对翅 p。原创 2024-01-09 22:42:49 · 764 阅读 · 0 评论 -
KY156 百鸡问题
用小于等于n元去买100只鸡,大鸡5元/只,小鸡3元/只,还有1/3元每只的一种小鸡,分别记为x只,y只,z只。编程求解x,y,z所有可能解。原创 2024-01-09 22:17:05 · 385 阅读 · 0 评论 -
1224 个位数
计算a^b的个位数。原创 2024-01-09 22:15:41 · 854 阅读 · 0 评论 -
KY50 与7无关的数
一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7, 则称其为与7相关的数.现求所有小于等于n(n原创 2024-01-09 12:52:35 · 349 阅读 · 0 评论 -
KY132 xxx定律
于一个数n,如果是偶数,就把n砍掉一半;如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止。 请计算需要经过几步才能将n变到1,具体可见样例。原创 2024-01-09 12:38:57 · 374 阅读 · 0 评论 -
KY266 反序数
设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321)求N的值原创 2024-01-09 09:53:47 · 587 阅读 · 0 评论 -
KY15 abc
就是一道简单的模拟,就是把三位数每个数字单独拿出来,abc就是100a+10b+c,那么bcc就是100b+10c+c,abc+bcc就是100a+110b+12c,所以只需要判断100a+110b+12c是否等于532。设a、b、c均是0到9之间的数字,abc、bcc是两个三位数,且有:abc+bcc=532。求满足条件的所有a、b、c的值。请输出所有满足题目条件的a、b、c的值。a、b、c之间用空格隔开。原创 2024-01-08 21:33:58 · 331 阅读 · 0 评论 -
鸡兔同笼问题加强版
已知鸡和兔的总数量为 n,总腿数为 m。输入 n 和 m,依次输出鸡和兔的数目,如果无解,则输出 “No answer”(不要引号)。原创 2024-01-06 17:07:57 · 496 阅读 · 0 评论 -
[NOIP2002 普及组] 级数求和
显然对于任意一个整数k,当n足够大的时候,Sn>k。现给出一个整数k,要求计算出一个最小的n,使得Sn>k。原创 2023-12-31 21:51:06 · 784 阅读 · 0 评论 -
L1-1 嫑废话上代码 (5分)
L1-1 嫑废话上代码 (5分)Linux 之父 Linus Torvalds 的名言是:“Talk is cheap. Show me the code.”(嫑废话,上代码)。本题就请你直接在屏幕上输出这句话。输入格式:本题没有输入。输出格式:在一行中输出 Talk is cheap. Show me the code.。输入样例:无输出样例:Talk is cheap. Show me the code.#include<stdio.h>int main(){原创 2021-02-01 14:08:51 · 389 阅读 · 5 评论 -
L1-5 胎压监测 (15分)
L1-5 胎压监测 (15分)1.小轿车中有一个系统随时监测四个车轮的胎压,如果四轮胎压不是很平衡,则可能对行车造成严重的影响。让我们把四个车轮 —— 左前轮、右前轮、右后轮、左后轮 —— 顺次编号为 1、2、3、4。本题就请你编写一个监测程序,随时监测四轮的胎压,并给出正确的报警信息。报警规则如下:如果所有轮胎的压力值与它们中的最大值误差在一个给定阈值内,并且都不低于系统设定的最低报警胎压,则说明情况正常,不报警;如果存在一个轮胎的压力值与它们中的最大值误差超过了阈值,或者低于系统设定的最低报警原创 2021-02-01 14:01:45 · 4763 阅读 · 1 评论 -
L1-4 调和平均 (10分)
L1-4 调和平均 (10分)N 个正数的算数平均是这些数的和除以 N,它们的调和平均是它们倒数的算数平均的倒数。本题就请你计算给定的一系列正数的调和平均值。输入格式:每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数 N (≤1000);第 2 行给出 N 个正数,都在区间 [0.1,100] 内。输出格式:在一行中输出给定数列的调和平均值,输出小数点后2位。输入样例:810 15 12.7 0.3 4 13 1 15.6输出样例:1.61#include<stdi原创 2021-02-01 14:16:04 · 288 阅读 · 0 评论 -
L1-2 猫是液体 (5分)
L1-2 猫是液体 (5分)测量一个人的体积是很难的,但猫就不一样了。因为猫是液体,所以可以很容易地通过测量一个长方体容器的容积来得到容器里猫的体积。本题就请你完成这个计算。输入格式:输入在第一行中给出 3 个不超过 100 的正整数,分别对应容器的长、宽、高。输出格式:在一行中输出猫的体积。输入样例:23 15 20输出样例:6900#include<stdio.h>int main(){ int x,y,z; scanf("%d %d %d",&原创 2021-02-01 14:10:49 · 740 阅读 · 2 评论 -
L1-3 洛希极限 (10分)
L1-3 洛希极限 (10分)科幻电影《流浪地球》中一个重要的情节是地球距离木星太近时,大气开始被木星吸走,而随着不断接近地木“刚体洛希极限”,地球面临被彻底撕碎的危险。但实际上,这个计算是错误的。洛希极限(Roche limit)是一个天体自身的引力与第二个天体造成的潮汐力相等时的距离。当两个天体的距离少于洛希极限,天体就会倾向碎散,继而成为第二个天体的环。它以首位计算这个极限的人爱德华·洛希命名。(摘自百度百科)大天体密度与小天体的密度的比值开 3 次方后,再乘以大天体的半径以及一个倍数(流体对原创 2021-02-01 14:13:38 · 1864 阅读 · 0 评论 -
栈和队列基本操作题
新建一个栈,读取标准输入3个整数3 4 5,入栈3 4 5,依次出栈,打印 5 4 3,新建循环队列(Maxsize为5),读取标准输入3 4 5 6 7,入队7时,队满,打印false,然后依次出队,输出 3 4 5 6原创 2023-01-02 16:59:28 · 246 阅读 · 1 评论 -
P00587. 染色
机房的窗户是一个n行m列的方格阵,n,m未知小J准备对窗户进行染色他准备将最外圈的方格染成红色的,其余方格染成黑色的。现给出红色方格的个数r和黑色方格的个数b,也就是说你会知道一共有多少个格子。请给出一组可行的n,m的取值。原创 2022-12-27 10:44:41 · 343 阅读 · 0 评论 -
数组循环左移
本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?原创 2022-12-27 10:43:46 · 129 阅读 · 0 评论 -
两个有序序列的中位数
已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A0,A1,...,AN−1的中位数指A(N−1)/2的值,即第⌊(N+1)/2⌋个数(A0 为第1个数)。原创 2022-12-27 10:40:23 · 290 阅读 · 0 评论 -
两个有序链表序列的合并
已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。原创 2022-12-26 19:00:32 · 92 阅读 · 0 评论 -
寒假集训题目集二B - 海港
小 K 是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。小 K 对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况;对于第 ii 艘到达的船,他记录了这艘船到达的时间 t_it i (单位:秒),船上的乘客数 k_ik i ,以及每名乘客的国籍 x_{i,1}, x_{i,2},\dots,x_{i,k}x i,1 ,x i,2 ,…,x i,k 。小K统计了 nn 艘船的信息,希望你帮忙计算出以原创 2022-12-23 11:12:23 · 112 阅读 · 0 评论 -
寒假集训题目集二A - 产生冠军
有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛。球赛的规则如下:如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能打败C。如果A打败了B,B又打败了C,而且,C又打败了A,那么A、B、C三者都不可能成为冠军。根据这个规则,无需循环较量,或许就能确定冠军。你的任务就是面对一群比赛选手,在经过了若干场撕杀之后,确定是否已经实际上产生了冠军。原创 2022-12-22 19:21:24 · 337 阅读 · 0 评论 -
陶陶摘苹果(升级版)
又是一年秋季时,陶陶家的苹果树结了n个果子。陶陶又跑去摘苹果,这次他有一个a公分的椅子。当他手够不着时,他会站到椅子上再试试。这次与 NOIp2005 普及组第一题不同的是:陶陶之前搬凳子,力气只剩下s了。当然,每次摘苹果时都要用一定的力气。陶陶想知道在s原创 2022-12-20 16:09:34 · 227 阅读 · 0 评论 -
最大子段和(动态规划详细解析)
给出一个长度为n的序列a,选出其中连续且非空的一段使得这段和最大。原创 2022-12-20 11:18:52 · 3535 阅读 · 0 评论 -
凌乱的yyy / 线段覆盖
快 noip 了,yyy 很紧张!现在各大 oj 上有 $n$ 个比赛,每个比赛的开始、结束的时间点是知道的。yyy 认为,参加越多的比赛,noip 就能考的越好(假的)。所以,他想知道他最多能参加几个比赛。由于 yyy 是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加 $2$ 个及以上的比赛。原创 2022-12-19 20:17:31 · 80 阅读 · 0 评论 -
九进制转十进制
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。转换成十进制等于多少?原创 2022-12-19 14:58:28 · 718 阅读 · 0 评论 -
环形链表问题(C语言)
暴力法+快慢指针法+哈希表法解决环形链表问题。暴力法仅需四行代码。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。原创 2022-02-24 20:13:27 · 162 阅读 · 0 评论 -
删除链表中的节点(C语言)
请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点head ,只能直接访问 要被删除的节点 。原创 2022-02-23 18:46:33 · 9035 阅读 · 0 评论 -
删除链表 M 个节点之后的 N 个节点(C语言)
给定链表 head 和两个整数 m 和 n. 遍历该链表并按照如下方式删除节点:- 开始时以头节点作为当前节点.- 保留以当前节点开始的前 m 个节点.- 删除接下来的 n 个节点. - 重复步骤 2 和 3, 直到到达链表结尾.在删除了指定结点之后, 返回修改过后的链表的头节点.原创 2022-02-27 22:47:21 · 885 阅读 · 0 评论 -
盛最多水的容器(C语言)
暴力法加双指针法解决盛水容器问题,给定一个长度为 n 的整数数组height。有n条垂线,第 i 条线的两个端点是(i, 0)和(i, height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。原创 2022-02-22 09:46:59 · 482 阅读 · 0 评论 -
链表中倒数第k个节点(C语言)
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。转载 2022-02-23 20:31:27 · 420 阅读 · 0 评论 -
合并两个有序链表(C语言)
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。原创 2022-02-24 16:09:07 · 2744 阅读 · 0 评论 -
从尾到头打印链表(C语言)
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。转载 2022-02-23 20:16:02 · 494 阅读 · 0 评论 -
存在重复元素(C语言)
给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。原创 2022-02-25 19:30:07 · 1365 阅读 · 0 评论 -
寻找两个正序数组的中位数(C语言)
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5原创 2022-02-20 15:12:12 · 587 阅读 · 0 评论 -
统计各位数字之和为偶数的整数个数(C语言)
给你一个正整数 num ,请你统计并返回 小于或等于 num 且各位数字之和为 偶数 的正整数的数目。正整数的 各位数字之和 是其所有位上的对应数字相加的结果。示例 1:输入:num = 4输出:2解释:只有 2 和 4 满足小于等于 4 且各位数字之和为偶数。 示例 2:输入:num = 30输出:14解释:只有 14 个整数满足小于等于 30 且各位数字之和为偶数,分别是: 2、4、6、8、11、13、15、17、19、20、22、24、26 和 28 。 提示:原创 2022-02-20 15:04:58 · 1537 阅读 · 0 评论 -
删除排序链表中的重复元素(C语言)
给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。原创 2022-02-24 16:33:53 · 1905 阅读 · 0 评论