![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
AcWing
文章平均质量分 53
蒟蒻颖
一个热爱开发的数学蒟蒻
展开
-
AcWing 2041. 干草堆
题目描述题目链接2041. 干草堆算法1思路可以用差分+前缀和的思想,最后通过sort排序选择中位数时间复杂度O(nlogn)O(nlogn)O(nlogn)C++ 代码#include <iostream>using namespace std;const int N = 1e6 + 10;int n, k;int q[N];int main() { cin >> n >> k; // 一维差分 for (i原创 2022-01-04 09:09:55 · 419 阅读 · 0 评论 -
AcWing 3375. 成绩排序
题目题目链接3375. 成绩排序思路思路要求稳定排序或者特判的快排写法一:写两个sort中的比较函数的参数cmp写法二:直接在结构体中进行比较写法三:归并排序代码1:#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 1100;int n, k;struct student{ string na原创 2021-07-03 09:56:38 · 272 阅读 · 0 评论 -
AcWing 3208. Z字形扫描
题目描述在图像编码的算法中,需要将一个给定的方形矩阵进行 ZZZ 字形扫描(Zigzag Scan)。给定一个 n×nn\times nn×n 的矩阵,ZZZ 字形扫描的过程如下图所示:对于下面的 4×44\times 44×4 的矩阵,1 5 3 93 7 5 69 4 6 47 3 1 3对其进行 ZZZ 字形扫描后得到长度为 161616 的序列:1 5 3 9 7 3 9 5 4 7 3 6 6 4 1 3。请实现一个 ZZZ 字形扫描的程序,给定一个 n×nn\times n原创 2021-02-17 09:24:27 · 312 阅读 · 0 评论 -
AcWing 445. 数字反转
题目给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。输入格式:输入共1行,1个整数N。输出格式:输出共1行,1个整数表示反转后的新数。数据范围N|≤109输入样例1:123输出样例1:321输入样例2:-380输出样例2:-83思路分析:经典倒序输出问题。还可以利用string中的reverse函数来倒序输出前面无0形。代码:#include <iostr原创 2021-02-14 07:39:50 · 286 阅读 · 0 评论 -
AcWing 826. 单链表
题目实现一个单链表,链表初始为空,支持三种操作:(1) 向链表头插入一个数;(2) 删除第k个插入的数后面的数;(3) 在第k个插入的数后插入一个数现在要对该链表进行M次操作,进行完所有操作后,从头到尾输出整个链表。注意:题目中第k个插入的数并不是指当前链表的第k个数。例如操作过程中一共插入了n个数,则按照插入的时间顺序,这n个数依次为:第1个插入的数,第2个插入的数,…第n个插入的数。输入格式:第一行包含整数M,表示操作次数。接下来M行,每行包含一个操作命令,操作命令可能为以下几种:(原创 2021-02-13 08:24:32 · 218 阅读 · 0 评论 -
AcWing 449. 质因数分解
题目已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。输入格式:输入只有一行,包含一个正整数n。输出格式:输出只有一行,包含一个正整数p,即较大的那个质数。数据范围6≤n≤2∗109输入样例:21输出样例:7思路分析:通过枚举最小的质数然后输出n/i的值代码:#include <iostream>using namespace std;int main(){ int n; cin >> n; for(int原创 2021-02-13 07:49:10 · 241 阅读 · 0 评论 -
AcWing 441. 数字统计
题目请统计某个给定范围[L, R]的所有整数中,数字 2 出现的次数。比如给定范围[2, 22],数字 2 在数 2 中出现了 1 次,在数 12 中出现 1 次,在数 20 中出现 1 次,在数 21 中出现 1 次,在数 22 中出现 2 次,所以数字 2 在该范围内一共出现了 6 次。输入格式:输入共 1 行,为两个正整数 L 和 R,之间用一个空格隔开。输出格式:输出共 1 行,表示数字 2 出现的次数。数据范围1≤L≤R≤10000输入样例:2 22输出样例:6思路分原创 2021-02-12 11:05:42 · 483 阅读 · 0 评论 -
AcWing 756. 蛇形矩阵
题目输入两个整数n和m,输出一个n行m列的矩阵,将数字 1 到 n*m 按照回字蛇形填充至矩阵中。具体矩阵形式可参考样例。输入格式:输入共一行,包含两个整数n和m。输出格式:输出满足要求的矩阵。矩阵占n行,每行包含m个空格隔开的整数。数据范围1≤n,m≤100输入样例:3 3输出样例:1 2 38 9 47 6 5思路分析:第一种模拟法,同Basic Level 1050 螺旋矩阵第二种模拟法,利用 left right top bottom 四个变量 来表示 这个原创 2021-02-10 19:33:46 · 393 阅读 · 0 评论 -
AcWing 1227. 分巧克力
题目儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 N 块巧克力,其中第 i 块是 Hi×Wi 的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数大小相同例如一块 6×5 的巧克力可以切出 6 块 2×2 的巧克力或者 2 块 3×3 的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?输入格式:第一行包含两个整数 N 和原创 2021-02-10 15:09:05 · 186 阅读 · 0 评论 -
AcWing 680. 剪绳子
题目有N根绳子,第i根绳子长度为Li,现在需要M根等长的绳子,你可以对N根绳子进行任意裁剪(不能拼接),请你帮忙计算出这M根绳子最长的长度是多少。输入格式:第一行包含2个正整数N、M,表示原始绳子的数量和需求绳子的数量。第二行包含N个整数,其中第 i 个整数Li表示第 i 根绳子的长度。输出格式:输出一个数字,表示裁剪后最长的长度,保留两位小数。数据范围1≤N,M≤100000,0<Li<109输入样例:3 43 5 4输出样例:2.50思路分析:将优化问题原创 2021-02-10 10:27:06 · 400 阅读 · 0 评论 -
AcWing 429. 奖学金
题目某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答原创 2021-02-09 15:56:06 · 231 阅读 · 0 评论 -
AcWing 421. 陶陶摘苹果
题目陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。输入格式:输入文件包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔原创 2021-02-09 13:26:39 · 202 阅读 · 0 评论 -
AcWing 425. 明明的随机数
题目明明想在学校中请一些同学一起做一项问卷调查。为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数,对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入格式:输入文件包含2行,第1行为1个正整数,表示所生成的随机数的个数:N 。第2行有N个用空格隔开的正整数,为所产生的随机数。输出格式:输出文件也是2行,第1行为1个正整数M,表示不相同的随原创 2021-02-09 08:31:25 · 230 阅读 · 0 评论 -
AcWing 417. 不高兴的津津
题目津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。输入格式:输入文件包括七行数据,分别表示周一到周日的日程安排。每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课原创 2021-02-08 11:38:25 · 260 阅读 · 0 评论 -
AcWing 422. 校门外的树
题目某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。输入格式:输入文件的第一行有两个整数原创 2021-02-08 08:56:43 · 223 阅读 · 0 评论 -
AcWing 1381. 阶乘
题目N 的阶乘(记作 N!)是指从 1 到 N(包括 1 和 N)的所有整数的乘积。阶乘运算的结果往往都非常的大。现在,给定数字 N,请你求出 N! 的最右边的非零数字是多少。例如 5!=1×2×3×4×5=120,所以 5! 的最右边的非零数字是 2。输入格式:共一行,包含一个整数 N。输出格式:输出一个整数,表示 N! 的最右边的非零数字。数据范围1≤N≤1000输入样例:7输出样例:4思路分析:这道题通过计算器的直观展示,我们可以看到从5的阶乘开始末尾有0所以而0原创 2021-02-08 00:08:45 · 268 阅读 · 0 评论 -
AcWing 104. 货仓选址
题目在一条数轴上有 N 家商店,它们的坐标分别为 A1~AN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。输入格式:第一行输入整数N。第二行N个整数A1~AN。输出格式:输出一个整数,表示距离之和的最小值。数据范围1≤N≤100000,0≤Ai≤40000输入样例:46 2 9 1输出样例:12思路分析:这道题可以用绝对值不等式的结论∣x1−a∣+∣x2+a∣⩾∣x1原创 2021-02-07 23:23:15 · 305 阅读 · 0 评论 -
AcWing题解
104. 货仓选址原创 2021-02-07 23:16:03 · 644 阅读 · 0 评论