- 博客(35)
- 收藏
- 关注
原创 shell
一.Shell简介Shell是一个用C语言编写的程序,通过Shell用户可以访问操作系统内核服务,类似于DOS下的command和后来的cmd.exe。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量、参数、函数、流程控制等等。它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因...
2019-11-01 17:06:35
212
原创 [算法竞赛进阶指南] 生日礼物 (优先队列+链表)
题目翰翰18岁生日的时候,达达给她看了一个神奇的序列 A1,A2,…,AN。她被允许从中选择不超过 M 个连续的部分作为自己的生日礼物。翰翰想要知道选择元素之和的最大值。你能帮助她吗?输入格式第一行包含两个整数N,M。第二行包含N个整数A1~AN。输出格式输出一个整数,表示答案。数据范围1≤N,M≤105,|Ai|≤104输入样例:5 2 2 -3 2 -1 2输...
2019-08-09 15:26:24
462
原创 [算法竞赛进阶指南] 树形地铁系统 (树的最小表示)
题目一些主要城市拥有树形的地铁系统,即在任何一对车站之间,有且只有一种方式可以乘坐地铁。此外,这些城市大多数都有一个中央车站。想象一下,你是一名在拥有树形地铁系统的城市游玩的游客,你想探索该城市完整的地铁线路。你从中央车站出发,随机选择一条地铁线,然后乘坐地铁行进。每次到达一个车站,你都将选择一条尚未乘坐过的地铁线路进行乘坐。如果不存在未乘坐过的线路,则退回到上一个车站,再做选择。直...
2019-08-09 15:12:17
237
原创 [算法竞赛进阶指南] 数据备份 (优先队列+双向链表)
题目你在一家IT公司为大型写字楼或办公楼的计算机数据做备份。然而数据备份的工作是枯燥乏味的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽享计算机游戏的乐趣。已知办公楼都位于同一条街上,你决定给这些办公楼配对(两个一组)。每一对办公楼可以通过在这两个建筑物之间铺设网络电缆使得它们可以互相备份。然而,网络电缆的费用很高。当地电信公司仅能为你提供 K 条网络电缆,这意...
2019-08-09 15:06:19
285
原创 [算法竞赛进阶指南] 荷马史诗 (优先队列)
题目追逐影子的人,自己就是影子。 ——荷马达达最近迷上了文学。她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的《荷马史诗》。但是由《奥德赛》和《伊利亚特》组成的鸿篇巨制《荷马史诗》实在是太长了,达达想通过一种编码方式使得它变得短一些。一部《荷马史诗》中有 n 种不同的单词,从 1 到 n 进行编号。其中第 i 种单词出现的总次数为 wi。达达想要用 k 进制串 s...
2019-08-09 14:56:51
187
原创 [算法竞赛进阶指南] 城市游戏 (单调栈)
题目有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。这片土地被分成N*M个格子,每个格子里写着’R’或者’F’,R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda。现在freda要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着’F’并且面积最大。但是rainbow和freda的OI水平都弱...
2019-08-09 14:47:51
174
原创 [算法竞赛进阶指南] 双栈排序 (二分图+栈)
题目Tom最近在研究一个有趣的排序问题。通过2个栈S1和S2,Tom希望借助以下4种操作实现将输入序列升序排序。操作a如果输入序列不为空,将第一个元素压入栈S1操作b如果栈S1不为空,将S1栈顶元素弹出至输出序列操作c如果输入序列不为空,将第一个元素压入栈S2操作d如果栈S2不为空,将S2栈顶元素弹出至输出序列如果一个1~n的排列P可以通过一系列操作使得输出序列为1, 2,…...
2019-08-09 14:34:00
297
原创 [算法竞赛进阶指南] 矩阵 (二维Hash+前缀和)
题目给定一个M行N列的01矩阵(只包含数字0或1的矩阵),再执行Q次询问,每次询问给出一个A行B列的01矩阵,求该矩阵是否在原矩阵中出现过。输入格式第一行四个整数M,N,A,B。接下来一个M行N列的01矩阵,数字之间没有空格。接下来一个整数Q。接下来Q个A行B列的01矩阵,数字之间没有空格。输出格式对于每个询问,输出1表示出现过,0表示没有出现过。数据范围A≤100,M,N,B...
2019-08-09 14:09:43
350
原创 [算法竞赛进阶指南] 矩阵距离 (广搜)
题目给定一个N行M列的01矩阵A,A[i][j] 与 A[k][l] 之间的曼哈顿距离定义为:dist(A[i][j],A[k][l])=|i−k|+|j−l|输出一个N行M列的整数矩阵B,其中:B[i][j]=min1≤x≤N,1≤y≤M,A[x][y]=1dist(A[i][j],A[x][y])输入格式第一行两个整数n,m。接下来一个N行M列的01矩阵,数字之间没有空格。...
2019-08-09 14:01:39
660
原创 [算法竞赛进阶指南] 可达性统计 (拓扑排序+bitset)
题目给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量。输入格式第一行两个整数N,M,接下来M行每行两个整数x,y,表示从x到y的一条有向边。输出格式输出共N行,表示每个点能够到达的点的数量。数据范围1≤N,M≤30000输入样例:10 103 82 32 55 95 92 33 94 82 104 9输出样例:16332...
2019-08-09 13:55:03
286
原创 [算法竞赛进阶指南] 最长异或值路径 (trie+深搜)
题目给定一个树,树上的边都具有权值。树中一条路径的异或长度被定义为路径上所有边的权值的异或和:给定上述的具有n个节点的树,你能找到异或长度最大的路径吗?输入格式第一行包含整数n,表示树的节点数目。接下来n-1行,每行包括三个整数u,v,w,表示节点u和节点v之间有一条边权重为w。输出格式输出一个整数,表示异或长度最大的路径的最大异或和。数据范围1≤n≤100000,0≤u,v...
2019-08-04 14:31:27
168
原创 [算法竞赛进阶指南] 最大异或对 (trie树)
题目在给定的N个整数A1,A2……AN中选出两个进行xor(异或)运算,得到的结果最大是多少?输入格式第一行输入一个整数N。第二行输入N个整数A1~AN。输出格式输出一个整数表示答案。数据范围1≤N≤105,0≤Ai<231输入样例:31 2 3输出样例:3分析:trie树模板题,先将所有数加入trie树,然后查询所有数在trie数中每个二进制位尽量往相...
2019-08-04 14:15:24
246
原创 [算法竞赛进阶指南] 周期 (KMP)
题目一个字符串的前缀是从第一个字符开始的连续若干个字符,例如”abaab”共有5个前缀,分别是a, ab, aba, abaa, abaab。我们希望知道一个N位字符串S的前缀是否具有循环节。换言之,对于每一个从头开始的长度为 i (i>1)的前缀,是否由重复出现的子串A组成,即 AAA…A (A重复出现K次,K>1)。如果存在,请找出最短的循环节对应的K值(也就是这个前缀串的...
2019-08-04 14:01:56
316
原创 [算法竞赛进阶指南] 前缀统计 (trie树)
题目给定N个字符串S1,S2…SN,接下来进行M次询问,每次询问给定一个字符串T,求S1~SN中有多少个字符串是T的前缀。输入字符串的总长度不超过106,仅包含小写字母。输入格式第一行输入两个整数N,M。接下来N行每行输入一个字符串Si。接下来M行每行一个字符串T用以询问。输出格式对于每个询问,输出一个整数表示答案。每个答案占一行。输入样例:3 2abbcabcabc...
2019-08-04 13:49:47
285
原创 [算法竞赛进阶指南] 超市 (贪心+并查集/优先队列)
题目超市里有N件商品,每个商品都有利润pi和过期时间di,每天只能卖一件商品,过期商品(即当天di<=0)不能再卖。求合理安排每天卖的商品的情况下,可以得到的最大收益是多少。输入格式输入包含多组测试用例。每组测试用例,以输入整数N开始,接下里输入N对pi和di,分别代表第i件商品的利润和过期时间。在输入中,数据之间可以自由穿插任意个空格或空行,输入至文件结尾时终止输入,保证数据正...
2019-08-03 23:51:17
359
原创 ZOJ-4109 Welcome Party (并查集+BFS+优先队列)
Problem DescriptionThe 44th World Finals of the International Collegiate Programming Contest (ICPC 2020) will be held in Moscow, Russia. To celebrate this annual event for the best competitive progra...
2019-08-03 23:25:13
210
原创 [算法竞赛进阶指南] 后缀数组 (Hash+二分+排序)
题目后缀数组 (SA) 是一种重要的数据结构,通常使用倍增或者DC3算法实现,这超出了我们的讨论范围。在本题中,我们希望使用快排、Hash与二分实现一个简单的O(nlog2n)的后缀数组求法。详细地说,给定一个长度为 n 的字符串S( 下标 0~n-1 ),我们可以用整数 k(0≤k<n) 表示字符串S的后缀 S(k~n-1)。把字符串S的所有后缀按照字典序排列,排名为 i 的后缀记...
2019-08-03 22:51:17
404
原创 [算法竞赛进阶指南] 回文子串的最大长度 (Hash+二分)
题目如果一个字符串正着读和倒着读是一样的,则称它是回文的。给定一个长度为N的字符串S,求他的最长回文子串的长度是多少。输入格式输入将包含最多30个测试用例,每个测试用例占一行,以最多1000000个小写字符的形式给出。输入以一个以字符串“END”(不包括引号)开头的行表示输入终止。输出格式对于输入中的每个测试用例,输出测试用例编号和最大回文子串的长度(参考样例格式)。每个输出占一行...
2019-08-03 22:31:04
308
原创 [算法竞赛进阶指南] 蚯蚓 (单调队列)
题目蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓。蛐蛐国里现在共有 n 只蚯蚓,第 i 只蚯蚓的长度为 ai ,所有蚯蚓的长度都是非负整数,即可能存在长度为0的蚯蚓。每一秒,神刀手会在所有的蚯蚓中,准确地找到最长的那一只,将其切成两段。若有多只最长的,则任选一只。神刀手切开蚯蚓的位置由有理数 p 决定。一只长度为 x 的蚯蚓会被切成两...
2019-08-01 22:55:18
253
原创 [算法竞赛进阶指南] 火车进出栈问题 (卡特兰数)
题目一列火车n节车厢,依次编号为1,2,3,…,n。每节车厢有两种运动方式,进栈与出栈,问n节车厢出栈的可能排列方式有多少种。输入格式输入一个整数n,代表火车的车厢数。输出格式输出一个整数s表示n节车厢出栈的可能排列方式数量。数据范围1≤n≤60000输入样例:3输出样例:5分析这个题目就是求卡特兰数,卡特兰数是一种用途非常广的递推数列。下面给出用组合数求卡特兰...
2019-08-01 22:39:33
526
原创 [算法竞赛进阶指南] 直方图中最大矩形 (单调栈)
题目直方图是由在公共基线处对齐的一系列矩形组成的多边形。矩形具有相等的宽度,但可以具有不同的高度。例如,图例左侧显示了由高度为2,1,4,5,1,3,3的矩形组成的直方图矩形的宽度都为1:通常,直方图用于表示离散分布,例如,文本中字符的频率。现在,请你计算在公共基线处对齐的直方图中最大矩形的面积。图例右图显示了所描绘直方图的最大对齐矩形。输入格式输入包含几个测试用例。每个测试...
2019-08-01 22:20:25
722
原创 [算法竞赛进阶指南] 最大子序和 (单调队列+前缀和)
题目输入一个长度为n的整数序列,从中找出一段长度不超过m的连续子序列,使得子序列中所有数的和最大。输入格式第一行输入两个整数n,m。第二行输入n个数,代表长度为n的整数序列。同一行数之间用空格隔开。输出格式输出一个整数,代表该序列的最大子序和。数据范围1≤n,m≤300000输入样例6 41 -3 5 1 -2 3输出样例7分析这个题我们可以用单调队列+前缀...
2019-08-01 21:43:34
380
原创 [算法竞赛进阶指南] 兔子与兔子 (Hash+前缀和)
题目很久很久以前,森林里住着一群兔子。有一天,兔子们想要研究自己的 DNA 序列。我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DNA 序列可能包含 26 个小写英文字母)。然后我们每次选择两个区间,询问如果用两个区间里的 DNA 序列分别生产出来两只兔子,这两个兔子是否一模一样。注意两个兔子一模一样只可能是他们的 DNA 序列一模一样。输入格式第一行输入一个 DNA ...
2019-08-01 21:08:45
336
原创 [算法竞赛进阶指南] 最大的和 (前缀和+dp)
题目给定一个包含整数的二维矩阵,子矩形是位于整个阵列内的任何大小为1 * 1或更大的连续子阵列。矩形的总和是该矩形中所有元素的总和。在这个问题中,具有最大和的子矩形被称为最大子矩形。输入格式输入中将包含一个N*N的整数数组。第一行只输入一个整数N,表示方形二维数组的大小。从第二行开始,输入N*N的矩阵。数组中的数字会保持在[-127,127]的范围内。输出格式输出一个整数,代表...
2019-07-29 11:10:48
340
原创 [算法竞赛进阶指南] 赶牛入圈 (二分+前缀和+离散化)
题目农夫约翰希望为他的奶牛们建立一个畜栏。这些挑剔的畜生要求畜栏必须是正方形的,而且至少要包含C单位的三叶草,来当做它们的下午茶。畜栏的边缘必须与X,Y轴平行。约翰的土地里一共包含N单位的三叶草,每单位三叶草位于一个1 x 1的土地区域内,区域位置由其左下角坐标表示,并且区域左下角的X,Y坐标都为整数,范围在1到10000以内。多个单位的三叶草可能会位于同一个1 x 1的区域内,因为这个...
2019-07-28 16:55:20
472
原创 最近点对分治算法 (模板)
最近点对分治算法:对于平面上给定的N个点,给出所有点的坐标,即输入是平面上的N个点,输出是N点中具有最短距离的两点。分析:这个问题我们有两种解决方案第一种就是直接暴力,对于每个点,遍历所有的点,求出他们的距离,最小的就是答案,但是这样时间复杂度无疑很大,至少是O(n^2)。第二种就是利用归并算法的思想进行二分,这样可以把时间复杂度降到O(nlogn)。现在我们主要来讨论...
2019-07-28 00:00:33
756
2
原创 [算法竞赛进阶指南] 袭击 (最近点对)
题目在与联盟的战斗中屡战屡败后,帝国撤退到了最后一个据点。依靠其强大的防御系统,帝国击退了联盟的六波猛烈进攻。经过几天的苦思冥想,联盟将军亚瑟终于注意到帝国防御系统唯一的弱点就是能源供应。该系统由N个核电站供应能源,其中任何一个被摧毁都会使防御系统失效。将军派出了N个特工进入据点之中,打算对能源站展开一次突袭。不幸的是,由于受到了帝国空军的袭击,他们未能降落在预期位置。作为一名经验丰...
2019-07-27 23:01:08
702
1
原创 [算法竞赛进阶指南] 四塔汉诺塔 (递推)
题目汉诺塔问题的加强版。将汉诺塔问题中三座塔改成四座塔。那么当输入n个圆盘时,应该要走多少步。输入格式一个数n。输出格式一个整数,即需要走的步数。输入样例12输出样例81数据范围1<=n<=60分析四塔问题其实和三塔问题解决方案差不多,先求出三塔问题,然后当将j个盘放到一座塔某一座塔上,然后剩下n-j个盘的解决就变成了解决三塔问题,然后剩下的j个盘又是一个小...
2019-07-27 18:22:25
2276
原创 ST算法 (模板)
ST算法初始化dp[i][j]代表以i为起点,2^j 宽的最值 ,即以i+2^j-1结束。arr[i]代表原数组。void ST_prework(int n){ fir(i,1,n) dp[i][0]=arr[i]; int k=log(n*1.0)/log(2.0); fir(j,1,k){ fir(i,1,n-(1<<j)+1){ dp[i][j]=mi...
2019-07-25 14:01:11
166
原创 [算法竞赛进阶指南] 天才ACM (归并_快排_倍增)
题目给定一个整数 M,对于任意一个整数集合 S,定义“校验值”如下:从集合 S 中取出 M 对数(即 2∗M 个数,不能重复使用集合中的数,如果 S 中的整数不够 M 对,则取到不能取为止),使得“每对数的差的平方”之和最大,这个最大值就称为集合 S 的“校验值”。现在给定一个长度为 N 的数列 A 以及一个整数 T。我们要把 A 分成若干段,使得每一段的“校验值”都不超过 T。求最少需...
2019-07-25 11:44:34
533
原创 [算法竞赛进阶指南] 超快速排序 (归并排序+逆序对)
题目在这个问题中,您必须分析特定的排序算法----超快速排序。该算法通过交换两个相邻的序列元素来处理n个不同整数的序列,直到序列按升序排序。对于输入序列9 1 0 5 4,超快速排序生成输出0 1 4 5 9。您的任务是确定超快速排序需要执行多少交换操作才能对给定的输入序列进行排序。...
2019-07-24 23:29:45
817
原创 [算法竞赛进阶指南] 动态中位数 (对顶堆)
题目依次读入一个整数序列,每当已经读入的整数个数为奇数时,输出已读入的整数构成的序列的中位数。输入格式第一行输入一个整数P,代表后面数据集的个数,接下来若干行输入各个数据集。每个数据集的第一行首先输入一个代表数据集的编号的整数。然后输入一个整数M,代表数据集中包含数据的个数,M一定为奇数,数据之间用空格隔开。数据集的剩余行由数据集的数据构成,每行包含10个数据,最后一行数据量可能少于1...
2019-07-24 22:11:28
417
原创 [算法竞赛进阶指南] 七夕祭 (贪心+前缀和+中位数+排序)
题目七夕节因牛郎织女的传说而被扣上了「情人节」的帽子。于是TYVJ今年举办了一次线下七夕祭。Vani同学今年成功邀请到了cl同学陪他来共度七夕,于是他们决定去TYVJ七夕祭游玩。TYVJ七夕祭和11区的夏祭的形式很像。矩形的祭典会场由N排M列共计N×M个摊点组成。虽然摊点种类繁多,不过cl只对其中的一部分摊点感兴趣,比如章鱼烧、苹果糖、棉花糖、射的屋……什么的。Vani预先联系了七夕...
2019-07-24 17:24:02
415
原创 [算法竞赛进阶指南] 最高的牛(差分+区间处理)
题目有 N 头牛站成一行,被编队为1、2、3…N,每头牛的身高都为整数。当且仅当两头牛中间的牛身高都比它们矮时,两头牛方可看到对方。现在,我们只知道其中最高的牛是第 P 头,它的身高是 H ,剩余牛的身高未知。但是,我们还知道这群牛之中存在着 M 对关系,每对关系都指明了某两头牛 A 和 B 可以相互看见。求每头牛的身高的最大可能值是多少。输入格式第一行输入整数N,P,H,M,数据用...
2019-07-23 19:43:35
785
原创 [算法竞赛进阶指南] A^B的所有约数之和 (递归)
求出A^B的所有约数之和计算A^B所有约数之和对9901取模的值。输入2 3输出15解析:A= p1^k1 *p2^k2 *p3^k … pn^knA^B= p1^k1B *p2^k2B *p3^k3B *… *pn^knB因为p1取(p1^0…k1) 都是A^B的约数。而(pic*pjd)也是A^B的约数。(所有最简约数的乘积也是他的约数)因此A^B的约数之和等于(p1^...
2019-07-23 11:00:22
1051
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人