ACM
文章平均质量分 60
Bigw229
这个作者很懒,什么都没留下…
展开
-
算法:差分
差分 输入一个长度为 n 的整数序列。 接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。 请你输出进行完所有操作后的序列。 输入格式 第一行包含两个整数 n 和 m。 第二行包含 n 个整数,表示整数序列。 接下来 m 行,每行包含三个整数 l,r,c,表示一个操作。 输出格式 共一行,包含 n 个整数,表示最终序列。 数据范围 1≤n,m≤100000, 1≤l≤r≤n, −1000≤c≤1000, −1000≤整数序列中元素的值≤1000 输入样原创 2022-03-17 21:41:12 · 137 阅读 · 0 评论 -
算法:前缀和
前缀和 输入一个长度为 n 的整数序列。 接下来再输入 m 个询问,每个询问输入一对 l,r。 对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。 输入格式 第一行包含两个整数 n 和 m。 第二行包含 n 个整数,表示整数数列。 接下来 m 行,每行包含两个整数 l 和 r,表示一个询问的区间范围。 输出格式 共 m 行,每行输出一个询问的结果。 数据范围 1≤l≤r≤n, 1≤n,m≤100000, −1000≤数列中元素的值≤1000 输入样例: 5 3 2 1 3 6 4 1 2 1 3原创 2022-03-17 11:16:10 · 87 阅读 · 0 评论 -
算法:分治
算法描述 分治 ( Divide and Conquer ) ,字面上的解释是“分而治之”,就是把一个复杂的问题划分成多个相同或者相似的子问题,直到子问题可以简单的直接求解,然后将子问题的解进行合并从而得出原问题的解。在计算机科学中,分治法就是运用分治思想的一种很重要的算法。分治法是很多高效算法的基础,如排序算法(快速排序,归并排序),傅里叶变换等等。 其大概流程其实就是分为三步:分解 -> 解决 -> 合并。 分解原问题 分解到可以求解的边界之后,进行递归求解 ( 分治算法很大程度上是基于递原创 2021-10-16 19:59:55 · 99 阅读 · 1 评论 -
线段树入门题目: I Hate It
主要考察点:单点替换,区间求最值 I Hate It 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。 Input 本题目包含多组测试,请处理到文件结束。 在每个测试的第一行,有两个正整数 N 和 M ( 0<N<=200000,0<M<5000 ),分别代表学生的数目和操作的数目。 学生ID编号分别从1原创 2021-08-02 19:09:44 · 84 阅读 · 0 评论 -
sort排序
初入ACM,推荐的一个排序函数sort().原创 2020-04-03 18:32:13 · 183 阅读 · 0 评论 -
素数打表法
普通筛选法–埃拉托斯特尼筛法 关于埃拉托斯特尼筛法,维基百科上的GIF讲解和伪代码都特别清楚。 所用的原理大概是所使用的原理是从2开始,将每个素数的各个倍数,标记成合数。一个素数的各个倍数,是一个差为此素数本身的等差数列。此为这个筛法和试除法不同的关键之处,后者是以素数来测试每个待测数能否被整除。 实现方法:建立一个bool类型的数组check,一个int类型的数组prime储存素数,先假设所有的数都是素数(初始化为0),从第一个素数2开始,把2的倍数都标记为非素数(check置为1),一直到大于N;然后进原创 2020-04-03 18:21:39 · 88 阅读 · 0 评论 -
算法:二分查找
数的范围 给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。 对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。 如果数组中不存在该元素,则返回 -1 -1。 输入格式 第一行包含整数 n 和 q,表示数组长度和询问个数。 第二行包含 n 个整数(均在 1∼10000 范围内),表示完整数组。 接下来 q 行,每行包含一个整数 k,表示一个询问元素。 输出格式 共 q 行,每行包含两个整数,表示所求元素的起始位置和终止位置。 如果数组中不存在该元素,则返回 -1 -原创 2022-03-16 21:11:21 · 144 阅读 · 0 评论