12 2018 档案
摘要:适用 含负权边的有向图的单源最短路径问题 不能处理带负权边的无向图和包含权值总和为负值的回路 数据结构 dist[u] :源点到u的最短路径长度 思路 每次更新dist数组,使得 dist[u] 的含义是从源点到u的经过n条边的最短路径长度 递推公式 $Dist^k[u]=min(dist^{k-1
阅读全文
摘要:数据结构 dfn[i] :编号为i的结点在dfs遍历图的过程中的访问序号(开始时间) low[i] :从i结点出发dfs过程中i下方的结点能到达的最早的当前搜索路径上的结点的开始时间。(初始时 low[i]=dfn[i] ) 操作 遍历结点没被访问过的就开始dfs,碰到哪个结点哪个结点就入栈,栈中结
阅读全文
摘要:Trie树(字典树) 树中任一结点p都对应于一个字符串S,S由从根出发走到p所经过的边上的字符构成 数据结构 操作 插入串 (复杂度为模式串长度) Trie图(AC自动机) 可以由Trie树为基础构造 终止节点:每个模式串最后一个结点 危险结点:终止节点和前缀指向危险结点的结点。 包含前缀指针(ne
阅读全文
摘要:每个非叶结点所表示的结点[a,b],左儿子表示区间[a,\frac{a+b}{2}],右儿子表示的区间为[\frac{a+b}{2}+1,b] 叶子结点表示区间长度为1 数据结构 用一维数组存放线段树(idx)时,数组开到4n大可以确保不越界。 操作 区间分解 从根节点开始递归进行区间分
阅读全文
摘要:描述 The GX Light Pipeline Company started to prepare bent pipes for the new transgalactic light pipeline. During the design phase of the new pipe shape
阅读全文
摘要:描述 The main land of Japan called Honshu is an island surrounded by the sea. In such an island, it is natural to ask a question: “Where is the most dis
阅读全文
摘要:描述 Being the only living descendant of his grandfather, Kamran the Believer inherited all of the grandpa's belongings. The most valuable one was a pie
阅读全文
摘要:题目描述 Farmer John has noticed that his cows often move between nearby fields. Taking this into account, he wants to plant enough grass in each of his f
阅读全文
摘要:描述 人们熟悉的四则运算表达式称为中缀表达式,例如(23+34*45/(5+6+7))。在程序设计语言中,可以利用堆栈的方法把中缀表达式转换成保值的后缀表达式(又称逆波兰表示法),并最终变为计算机可以直接执行的指令,得到表达式的值。给定一个中缀表达式,编写程序,利用堆栈的方法,计算表达式的值。输入第
阅读全文
摘要:题目描述 农民约翰的农场里有N座山峰(1<=N<=1000),每座山都有一个在0到100之间的整数的海拔高度。在冬天,因为山上有丰富的积雪,约翰经常开办滑雪训练营。 不幸的是,约翰刚刚得知税法在滑雪训练营方面有新变化,明年开始实施。在仔细阅读法律后,他发现如果滑雪训练营的最高和最低的山峰海拔高度差大
阅读全文
摘要:题目描述 After realizing that there is much money to be made in software development, Farmer John has launched a small side business writing shortprograms
阅读全文
摘要:描述 After going through the receipts from your car trip through Europe this summer, you realised that the gas prices varied between the cities you visi
阅读全文
摘要:描述 Let us consider a special type of a binary search tree, called a cartesian tree. Recall that a binary search tree is a rooted ordered binary tree,
阅读全文
摘要:描述 输入 包括多组数据,每组数据的第一行是整点的个数n(1<=n<=1000),其后n行每行由两个整数组成,表示一个点的x、y坐标。输入保证一组数据中不会出现相同的点,且坐标的绝对值小于等于20000。输入以一组n=0的数据结尾。输出对于每组输入数据,输出一个数,表示这组数据中的点可以组成的正方形
阅读全文
摘要:描述 给定N个数的序列a1,a2,...aN,定义一个数对(ai, aj)为“重要逆序对”的充要条件为 i < j 且 ai > 2aj。求给定序列中“重要逆序对”的个数。 输入 第一行为序列中数字的个数N(1 ≤ N ≤ 200000)。第二行为序列a1, a2 ... aN(0 ≤a ≤ 100
阅读全文
摘要:描述 给出n个由小写字母组成的字符串,求一个最长的字符串,它同时是这n个字符串的子串。 输入 第一行是一个整数n(1<=n<=5),表示输入字符串的个数。接下来n行每行为一个由小写字母构成的字符串,每个字符串的长度至少为1,最长不超过2000。输出输出一行整数,为最长公共子串的长度。 样例输入 样例
阅读全文
摘要:描述 奶牛们打算通过锻炼来培养自己的运动细胞,作为其中的一员,贝茜选择的运动方式是每天进行N(1 <= N <= 10,000)分钟的晨跑。在每分钟的开始,贝茜会选择下一分钟是用来跑步还是休息。 贝茜的体力限制了她跑步的距离。更具体地,如果贝茜选择在第i分钟内跑步,她可以在这一分钟内跑D_i(1 <
阅读全文
摘要:描述 There has been considerable archeological work on the ancient Myacm culture. Many artifacts have been found in what have been called power fields:
阅读全文
摘要:描述 We all know that a pair of distinct points on a plane defines a line and that a pair of lines on a plane will intersect in one of three ways: 1) no
阅读全文
摘要:描述 Given a connected undirected graph, tell if its minimum spanning tree is unique.Definition 1 (Spanning Tree): Consider a connected, undirected grap
阅读全文
摘要:描述 In an edge-weighted tree, the xor-length of a path pis defined as the xor sum of the weights of edges on p: ⊕ is the xor operator. We say a path th
阅读全文
摘要:描述 The little cat is so famous, that many couples tramp over hill and dale to Byteland, and asked the little cat to give names to their newly-born bab
阅读全文
摘要:描述 系统A用来维护客户。每个客户的id用一个正整数K来表示,当客户进入系统时用P来表示此用户的优先度。这个系统有以下请求 0 系统停止运行 1 K P 优先度为P的客户K进入系统 2 找到优先度最高的客户,然后此客户离开系统 3 找到优先度最低的客户,然后此客户离开系统 输入 每行包括一个请求,最
阅读全文
摘要:描述 吉老师的面前出现了一座汉诺塔!但是这个汉诺塔好像坏了,盘子并不是按照从大到小的顺序排列的……吉老师非常不开心,立志要把这个汉诺塔修好!吉老师每分钟可以交换挨在一起的两个盘子,吉老师希望用的时间最短,吉老师不会啊,你能帮帮吉老师吗? 输入 第一行1个整数N。第二行为N 个非负整数,按从下到上的顺
阅读全文
摘要:描述 你旅游到了一个国外的城市。那里的人们说的外国语言你不能理解。不过幸运的是,你有一本词典可以帮助你。 输入首先输入一个词典,词典中包含不超过100000个词条,每个词条占据一行。每一个词条包括一个英文单词和一个外语单词,两个单词之间用一个空格隔开。而且在词典中不会有某个外语单词出现超过两次。词典
阅读全文
摘要:描述 给定一个长度为n(n<=10^6)的数组。有一个大小为k的滑动窗口从数组的最左端移动到最右端。你可以看到窗口中的k个数字。窗口每次向右滑动一个数字的距离。 下面是一个例子: 数组是 [1 3 -1 -3 5 3 6 7], k = 3。 窗口位置最小值最大值 [1 3 -1] -3 5 3 6
阅读全文
摘要:描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为c 的罪犯被关押在同一
阅读全文
摘要:适用于单个元素经常修改,反复求不同区间和的情况。 函数 求和:sum(k)=C[n_1]+C[n_2]+…+C[n_m] n_m=k, n_{i-1}=n_i-lowbit(n_i) a[i]+….+a[j]=sum(j)-sum(i) 更新: a[i]更新,有且只有$C[n_1],
阅读全文
摘要:主要函数 Merge :合并两个并查集 GetRoot :查询某个元素在哪个集合 Query :查询两个元素是否属于同一集合 数据结构 parent[i]=j :j是i的父节点 Code
阅读全文
摘要:描述 现有一排装满货物的箱子,重量各不相同(都已标示在箱子上),为了进行后面的工作,需要将这些箱子按轻重有序放置,但只有一名工作人员来完成这项工作,由于空间有限,他只能通过不断交换两个箱子(可不相邻)的位置的方式来实现箱子的排序。他知道这样一定可以完成任务,但搬箱子很累,所以他希望找到一种最省力的方
阅读全文
摘要:描述 The little cat is majoring in physics in the capital of Byterland. A piece of sad news comes to him these days: his mother is getting ill. Being wo
阅读全文
摘要:描述 Beside other services, ACM helps companies to clearly state their “corporate identity”, which includes company logo but also other signs, like trad
阅读全文
摘要:性能用ASL(查找成功时的平均查找长度)来衡量 线性表检索 顺序检索 逐个比较 优点:插入元素可以直接加在表尾 缺点:检索时间太长 二分检索法 条件:序列必须有序 实现: 1 template <class Type> int BinSearch (vector<Item<Type>*>& data
阅读全文
摘要:主要目的是减少访存次数 外排序基本过程: 置换选择排序(把外存文件初始化为尽可能长的顺串集) 归并排序(把顺串合并排序) 置换选择算法 用一个堆来维护 主要步骤:每个顺串至少长为M,平均长度2M 读取M个记录到堆中,建立最小堆,设置堆尾标志LAST 把根节点输出 读入下一条记录,如果比刚刚输出的根节
阅读全文
摘要:简单的排序-复杂度高 插入排序-稳定 思想:序列分为已排序和未排序两部分,未排序的一个个向前插入到已排序的序列中 复杂度:O(n^2) 当n较小的时候,插入排序较为高效 优化:不用每次比较都交换 再优化:二分查找 比较次数降为O(nlog^n),移动次数不变,最佳情况时间代价降低,但最差和平
阅读全文
摘要:两种表示方式 邻接矩阵 邻接表 无向图 |V|+2|E|存储空间 有向图 出边表入边表之一 |V|+|E| 十字链表 data域 firstinarc指针指向第一条以该顶点为终点的边 firstoutarc指针指向第一条以该顶点为起点的边 邻接矩阵 邻接表 无向图 |V|+2|E|存储空
阅读全文
摘要:发现他,抓住他(10分) 题目内容: 一个城市中有两个犯罪团伙A和B,你需要帮助警察判断任意两起案件是否是同一个犯罪团伙所为,警察所获得的信息是有限的。假设现在有N起案件(N<=100000),编号为1到N,每起案件由团伙A或团伙B所为。你将按时间顺序获得M条信息(M<=100000),这些信息分为
阅读全文