算法
oytf10001
这个作者很懒,什么都没留下…
展开
-
读书笔记-算法竞赛入门经典(第二版)-第五章 C++与STL入门之STL初步
5.2 STL初步STL是指C++的标准模板库。它里面包含一些常用的算法和容器,用好了它,可以让我们编程事半功倍。5.2.1 常用算法在algorithm头文件中包含我们一些常用的算法,如sort(排序),lower_bound(查找大于或者等于x的第一个位置),unique(删除有序数组中的重复元素)等等。5.2.2 常用容器常用的容器包括vector,set,map,sta...原创 2019-06-08 15:47:16 · 196 阅读 · 0 评论 -
期末-考题1
考题1描述给定一个1到n的排列,依次从队尾插入到队列中,在任何时刻你都可以弹出队首或队尾。最终你需要把队列清空。问:如何使得出队序列的字典序最大?请输出这个序列。输入输入的第一行包含一个正整数n。接下来1行包含n个整数,一个1到n的排列。输出输出1行n个整数,即所求序列。样例1输入...原创 2019-03-19 14:29:29 · 627 阅读 · 0 评论 -
第五周-周测-小粽圈地
小粽圈地问题描述小粽家里有一块地,地上有n 个木桩。小粽家的地可以看作是一个平面,并且小粽知道每个木桩的坐标(xi,yi)。小粽很喜欢四边形,现在她想从这些木桩中选出4 个来围成一个四边形(这个四边形为简单多边形,即每条边不能和自己相交,但不一定要为凸四边形),并使得这个四边形的面积最大。请你帮小粽算出这个最大...原创 2019-03-19 14:29:19 · 233 阅读 · 0 评论 -
第五周-3.2青蛙
青蛙题目名称:小青蛙时间限制:5 sec空间限制:256 MB问题描述一个坐标轴上有 n 个荷叶,编号从 1 到 n。每片荷叶有一个坐标。有一只可爱的小青蛙,它任选一片荷叶作为起点,并选择一个方向(左或右)然后开始跳。第一次跳跃时,他没有任何限制。从第二次跳跃开始,受到魔法的影响,他每次跳跃的距离都必须不小于前...原创 2019-03-19 14:29:07 · 274 阅读 · 0 评论 -
第五周-3.1纸牌
纸牌时间限制:1 sec空间限制:512 MB问题描述小明有 2n 张纸牌,点数依次从1 到 2n。小明要和你玩一个游戏,这个游戏中,每个人都会分到 n 张卡牌。游戏一共分为 n 轮,每轮你们都要出一张牌,点数小者获胜。游戏开始了,你拿到了你的牌。你现在想知道,你最多(也就是运气最好的情况下)能够获胜几轮?输入...原创 2019-03-19 14:28:48 · 357 阅读 · 0 评论 -
第五周-1.2最近点对
最近点对描述给定n个二维平面上的点,求距离最近的一对点,输出他们的距离。输入第一行包含一个正整数n。接下来n行,每行包含两个整数x,y,表示一个点的坐标。输出输出距离最近的一对点的距离,保留两位小数。样例1输入107 9-8 -1-3 -11 4-3 96 -47 56 6-6 ...原创 2019-03-19 14:28:28 · 160 阅读 · 0 评论 -
第五周-1.2图
图描述一个数列 a 称为合法的当且仅对于所有的位置 i, j(i < j ≤ n),都不存在一条从 aj 点连向 ai 的有向边。现在有很多个有向无环图,请你判断每个图是否只存在唯一的合法数列。输入输入的第一行包含一个正整数 T ,表示数据组数。对于每组数据,第一行包含两个正整数 n, m,表示图的节点个数和...原创 2019-03-19 14:28:08 · 204 阅读 · 0 评论 -
第五周-1.1凸包
凸包描述给定n个二维平面上的点,求他们的凸包。输入第一行包含一个正整数n。接下来n行,每行包含两个整数x,y,表示一个点的坐标。输出令所有在凸包极边上的点依次为p1,p2,...,pm(序号),其中m表示点的个数,请输出以下整数:(p1 × p2 × ... × pm × m) mod (n + 1)...原创 2019-03-19 14:27:53 · 213 阅读 · 0 评论 -
第四周-周测-循环节
循环节问题描述小粽今天在玩一个字符串。最初,小粽手上有很多很多个(你可以认为是无限多个)一模一样的字符串 a,小粽选出若干个 a 顺次拼接为一个新的字符串 b。由于小粽犯了粗心,她把最初的 a搞丢了,并且 b 的末尾也丢失了一些字符,只剩下了一个 b 的前缀 c。小粽很伤心,为了安慰她,请帮她计算可能的 a的最短...原创 2019-03-18 11:34:52 · 252 阅读 · 0 评论 -
第四周-3.3 字符串匹配
字符串匹配时间限制:1 sec空间限制:256 MB问题描述给定一个大串 A 和一个模式串 B,求 B 在 A 的哪些位置出现(输出这些出现位置的起始位置,下标从 0 开始)。输入格式第一行一个正整数 n,表示串 A 的长度。第二行包含一个长度为 n 的串 A。第三行一个正整数 m,表示串 B 的长度。...原创 2019-03-18 11:34:26 · 197 阅读 · 0 评论 -
第四周-3.2基数排序
基数排序时间限制:10 sec空间限制:1 GB问题描述给定 n 个 [0,2^k) 之间的整数,请你将它们升序排序。由于 n 可能很大,为了避免过大的输入、输出规模,我们会在程序内部生成数据,并要求你输出排序后序列的哈希值。具体方法如下(用c++代码展示):typedef unsigned int u32;...原创 2019-03-18 11:34:33 · 195 阅读 · 0 评论 -
第四周-3.1最大间隙
最大间隙时间限制:10 sec空间限制:1 GB问题描述给定长度为 n 的数组 a,其中每个元素都为 [0,2^k) 之间的整数,请求出它们在实数轴上相邻两个数之间的最大值(即maxGap)。由于 n 可能很大,为了避免过大的输入、输出规模,我们会在程序内部生成数据,并要求你输出排序后序列的哈希值。具体方法如下(用...原创 2019-03-18 11:34:15 · 224 阅读 · 0 评论 -
第四周-2.3前缀
前缀描述给定n个字符串,再询问m次,每个询问给出一个字符串,求出这个字符串是n个字符串里,多少个串的前缀。前缀:从头开始的一段连续子串。比如字符串ab是字符串abcd的前缀,也是字符串ab(自身)的前缀,但不是bab的前缀。输入第一行包含两个正整数n,m。接下来n行,每行表示一个字符串,表示给定的n个字符串中...原创 2019-03-18 11:33:42 · 294 阅读 · 0 评论 -
期末-考题2
考题2描述给定一个满二叉树,即这棵二叉树有n=2m(0≤m≤18)个叶子,每个叶子上有一个数字,且从左往右看去,这些数字序列是一个1到n的排列。二叉树每个非叶节点都能任意次数地交换左右孩子,且交换没有先后顺序的要求。交换完以后,从左往右看去,叶子组成的数字序列(仍是1到n的排列)的逆序对可能发生了改变哦~现在...原创 2019-03-19 14:29:38 · 436 阅读 · 0 评论 -
期末-考题3
考题3描述给定长度为n的整数数列A和B,以及一个整数S。试问是否存在一个长度n的数列C,使得n∑i=1Ci=S。其中Ci(1≤i≤n)的值为Ai、Bi、Ai×Bi三种其中之一。输入输入的第一行包含一个正整数T,表示数据组数。对于每组数据,第一行包含两个整数n,S。接下来2行,每行包含n个整数,...原创 2019-03-19 14:29:45 · 398 阅读 · 0 评论 -
读书笔记-算法竞赛入门经典(第二版)-第五章 C++与STL入门之从C到C++
5.1 从C到C++ 5.1.1 C++版框架 C++能编译大多数C语言程序。虽然C语言中大多数头文件在C++中仍然可以使用,但推荐的方法是在C头文件之前加一个小写的c字母,然后去掉.h后缀。例如stdio.h->cstdio.h,string.h->cstring,math.h->cmath,ctype.h->cctype. ...原创 2019-04-25 17:46:21 · 267 阅读 · 0 评论 -
第一周-2.3成绩排序
成绩排序问题描述有 n 名学生,它们的学号分别是 1,2,…,n。这些学生都选修了邓老师的算法训练营、数据结构训练营这两门课程。学期结束了,所有学生的课程总评都已公布,所有总评分数都是 [0,100] 之间的整数。巧合的是,不存在两位同学,他们这两门课的成绩都完全相同。邓老师希望将这些所有的学生按这两门课程...原创 2019-03-13 11:48:37 · 338 阅读 · 0 评论 -
第一周-2.2重编码
重编码问题描述有一篇文章,文章包含 n种单词,单词的编号从 1 至 n,第 i 种单词的出现次数为 wi。现在,我们要用一个 2 进制串(即只包含 0 或 1 的串) si来替换第 i 种单词,使其满足如下要求:对于任意的 1≤i,j≤n,i≠j,都有 si 不是 sj的前缀。(这个要求...原创 2019-03-13 11:47:35 · 212 阅读 · 0 评论 -
第一周-2.1数字盒子
数字盒子问题描述你有一个盒子,你可以往里面放数,也可以从里面取出数。初始时,盒子是空的,你会依次做 Q 个操作,操作分为两类:插入操作:询问盒子中是否存在数 x,如果不存在则把数 x 丢到盒子里。 删除操作:询问盒子中是否存在数 x,如果存在则取出 x。对于每个操作,你需要输出是否成功插入或删除。...原创 2019-03-13 11:46:28 · 282 阅读 · 0 评论 -
第一周-1.3二叉树
二叉树描述给定一个1到n的排列,按顺序依次插入到一棵二叉排序树中,请你将这棵二叉树前序遍历和后序遍历输出。前序遍历的定义后序遍历的定义输入第一行一个整数n。接下来一行表示为n个整数,代表1到n的一个排列。输出输出所建成的二叉树的前序遍历和后序遍历。输入样例102 6 9...原创 2019-03-13 11:29:30 · 340 阅读 · 0 评论 -
第一周-1.2队列
队列 描述实现一个队列,完成以下功能:入列 出列 询问队列中位置Y是谁一开始队列为空。队列中的位置从1开始(即队头位置为1)。输入第一行一个整数n,表示操作个数。接下来n行,每行第一个数字表示操作(见描述):若为数字1,则接下来有一串字符串X,表示将X加入队列。...原创 2019-03-13 11:28:09 · 232 阅读 · 0 评论 -
第一周-1.1栈
栈描述实现一个栈,完成以下功能:入栈 出栈 询问栈中位置Y是谁一开始栈为空。栈中的位置从1开始(即栈底位置为1)。输入第一行一个整数n,表示操作个数。接下来n行,每行第一个数字表示操作(见描述):若为数字1,则接下来有一串字符串X,表示将X压入栈中。 若为数字2,表示...原创 2019-03-13 10:53:20 · 265 阅读 · 0 评论 -
附加题-线段求交
线段求交描述给定n条二维平面上的线段,求这些线段的交点个数。输入第一行包含一个正整数n。接下来n行,每行包含四个整数x1,y1,x2,y2用来描述一条线段,其中x1,y1表示该线段的一个端点坐标,x2,y2表示另一个端点坐标。输出输出交点的个数。样例1输入51 1 3 31 2 3 21 3 ...原创 2019-03-20 15:15:41 · 418 阅读 · 0 评论 -
附加题-二叉查找树
二叉查找树描述实现一种数据结构,维护一个整数集合(该集合中数字可重复存在),并拥有以下功能:插入一个数字 删除一个数字 查询某个数字有多少个 查询最值 查询某个数字的前驱(就是集合中比该数字小的最大值)输入第一行一个整数n,表示操作个数。接下来n行,每行表示一个操作,第一个数字op表示操作种类:若op...原创 2019-03-20 15:15:20 · 314 阅读 · 0 评论 -
期末-考题5
考题5描述二维平面上,给定n个点{ai}和m个点{bi},且保证这n+m个点中,任意两个点的x坐标和y坐标均不相同。对于每个bi,判断是否存在由3个ai,aj,ak(1≤i,j,k≤n,i≠j≠k)点组成的三角形包含bi(在三角形边上也算包含;允许三点共线的三角形,此时只有bi在三点中任意两点的线段上才算包含...原创 2019-03-20 15:15:01 · 282 阅读 · 0 评论 -
期末-考题4
考题4描述给定一个由26个字符组成的字符串s和n个不同的「小」字符串,请问有多少种方案可以用「小」字符串不重叠地拼接成s(每个「小」字符串可以使用多次)。输入第一行为字符串s。第二行为一个正整数n。接下来n行,每行一个「小」字符串。输出输出方案数除以23333的余数。样例1输入...原创 2019-03-19 14:29:58 · 498 阅读 · 1 评论 -
第四周-2.2子序列
子序列描述给定一个字符串,求出该字符串有多少不同的子序列。子序列:字符串中按顺序抽出一些字符得到的串。比如字符串abcd里,ab、ac、ad、abc、acd都是子序列。输入输入一个字符串。输出输出不同的子序列的个数除以23333得到的余数。样例1输入ababc样例1输出23样例1...原创 2019-03-18 11:33:34 · 302 阅读 · 0 评论 -
第四周-2.1邓老师数
邓老师数时间限制:1 sec空间限制:256 MB问题描述众所周知,大于 1 的自然数中,除了 1 与其本身外不再有其他因数的数称作质数(素数)。对于大于 1 的不是质数的自然数,我们又称作合数。参加了邓老师算法训练营的小 Z 突发奇想,定义了新的数:所有合数中,除了 1 与其本身外,其他因数均为质数的数,称作邓老师数...原创 2019-03-18 11:33:26 · 231 阅读 · 0 评论 -
第二周-3.2楼尔邦德
楼尔邦德时间限制:2 sec空间限制:256 MB问题描述给定包含 n 个数的序列 A。再给出 Q 个询问,每个询问包含一个数 x,询问的是序列 A 中不小于 x 的最小整数是多少(无解输出-1)。输入格式第一行一个数 n,表示序列长度。第二行 n 个用空格隔开的正整数,描述序列中的每一个元素。保证这...原创 2019-03-16 11:13:35 · 169 阅读 · 0 评论 -
第二周-3.1最小交换
最小交换时间限制:4 sec空间限制:256 MB问题描述给定一个 1 到 n 的排列(即一个序列,其中 [1,n] 之间的正整数每个都出现了恰好 1 次)。你可以花 1 元钱交换两个相邻的数。现在,你希望把它们升序排序。求你完成这个目标最少需要花费多少元钱。输入格式第一行一个整数 n,表示排列长度。...原创 2019-03-16 11:12:50 · 271 阅读 · 0 评论 -
第二周-2.2序列计数
序列计数描述给定一个n个整数的序列以及一个非负整数d,请你输出这个序列中有多少个连续子序列(长度大于1),满足该子序列的最大值最小值之差不大于d。连续子序列:序列1 2 3中长度大于1的连续子序列有:1 22 31 2 3输入第一行包含两个整数n,d。接下来一行包含n个整数。输出输出一...原创 2019-03-16 10:48:42 · 162 阅读 · 0 评论 -
第二周-2.1象棋
象棋描述你有足够多的象棋“车”,在一个n×n的棋盘上你能放多少个“车”呢?注意,所给棋盘上有些位置不能放任何东西。同时,某一行(列)最多只能存在一个“车”。输入第一行为一个正整数n。接下来n行,每行包含n个整数,若为0表示这个位置不能放“车”;若为1表示这个位置可以放“车”。输出输出一个整数,表示最多...原创 2019-03-16 10:47:47 · 206 阅读 · 0 评论 -
第二周-1.3大转盘
大转盘时间限制:1 sec空间限制:256 MB问题描述邓老师有一个大转盘,被平分成了 2^n 份。邓老师还有一个长度为 2^n 的数组 a(下标从 0 开始),其中的每个元素都是 0 或 1。于是邓老师就可以选择大转盘上的一个位置,将 a[0] 填入其中,然后按顺时针顺序依次将 a[1],a[2],…,...原创 2019-03-16 10:41:49 · 154 阅读 · 0 评论 -
第二周-1.2分组
分组描述有n个正整数排成一排,你要将这些数分成m份(同一份中的数字都是连续的,不能隔开),同时数字之和最大的那一份的数字之和尽量小。输入输入的第一行包含两个正整数n,m。接下来一行包含n个正整数。输出输出一个数,表示最优方案中,数字之和最大的那一份的数字之和。样例1输入5 22 1 2 2 ...原创 2019-03-16 10:41:03 · 325 阅读 · 0 评论 -
第二周-1.1排序
排序描述给出n个整数,将它们从小到大排序后输出。输入第一行为一个正整数n,第二行为n个整数。输出输出一行n个整数,表示排序后的n个整数。样例1输入55 4 2 3 -1样例1输出-1 2 3 4 5样例2请查看下发文件内的sample2_input.txt和sample...原创 2019-03-16 10:40:20 · 252 阅读 · 0 评论 -
第一周-3.2道路升级
道路升级问题描述Z国有 n 个城市和 m 条双向道路,每条道路连接了两个不同的城市,保证所有城市之间都可以通过这些道路互达。每条道路都有一个载重量限制,这限制了通过这条道路的货车最大的载重量。道路的编号从 1 至 m 。巧合的是,所有道路的载重量限制恰好都与其编号相同。现在,要挑选出若干条道路,将它们升级成高速公路,...原创 2019-03-16 10:26:56 · 279 阅读 · 0 评论 -
第一周-3.1等式
等式描述有n个变量和m个“相等”或“不相等”的约束条件,请你判定是否存在一种赋值方案满足所有m个约束条件。输入第一行一个整数T,表示数据组数。接下来会有T组数据,对于每组数据:第一行是两个整数n,m,表示变量个数和约束条件的个数。接下来m行,每行三个整数a,b,e,表示第a个变量和第b个变量的关系...原创 2019-03-16 10:25:57 · 274 阅读 · 0 评论 -
预习周-最大红矩形
最大红矩形时间限制:10 sec空间限制:256 MB问题描述有一个 n*m 的棋盘,棋盘上的每个点都是红的或绿的。你需要找出一个面积最大的矩形区域,使得其中没有绿的格子。输入格式第一行 2 个正整数 n,m,描述棋盘尺寸。接下来 n 行描述这个棋盘,每行 m 个字符,每个字符为 . 或 ...原创 2019-03-06 19:05:31 · 317 阅读 · 0 评论 -
预习周-直方图最大面积
直方图最大面积时间限制:1 sec空间限制:256 MB问题描述有一个直方图,横轴长度为 n,第 i 列的高度为 h[i]。请你求出在这个直方图中面积最大的子矩阵。输入格式第一行一个正整数 n。第二行 n 个用空格隔开的非负整数,依次描述 h[1],h[2],…,h[n]。输出格式...原创 2019-03-06 18:09:47 · 155 阅读 · 0 评论 -
预习周-栈排序
栈排序时间限制:1 sec空间限制:256 MB问题描述给定一个序列 A,请你将它升序排序。输入格式第一行一个正整数 n,表示序列长度。第二行 n 个用空格隔开的非负整数,描述这个序列。输出格式n 行,每行一个非负整数,表示排序后的序列。样例输入41 3 2 10样例输出12...原创 2019-02-12 22:10:06 · 117 阅读 · 0 评论