![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法竞赛进阶指南
文章平均质量分 72
G·Dking
这个作者很懒,什么都没留下…
展开
-
《算法竞赛进阶指南》0x56 T3 宝藏
解法一:DFS从最基本的DFS入手去剪枝DFS的过程中枚举两个量:开拓的顺序以及由哪个点开拓出去代码:void dfs(int e, int num) { if(num == n) { ans = min(tmp, ans); return; } if(tmp >= ans) return; for(int i = 1; i <= n; i ++) {//确定下一步扩展谁 if(l[i]) continue;原创 2021-09-12 14:54:23 · 109 阅读 · 0 评论 -
《算法竞赛进阶指南》0x3B T7 233 Matrix
题目传送门题目描述在我们的日常生活中,我们经常使用 233 来表达我们的感受。实际上,我们可能会说 2333,23333 或 233333… 意思相同。假设我们有一个名为 233 矩阵的矩阵。在第一行,它将包含 233,2333,23333…(这意味着 a0,1=233,a0,2=2333,a0,3=23333…a_{0,1}=233,a_{0,2}=2333,a_{0,3}=23333…a0,1=233,a0,2=2333,a0,3=23333…)。此外,在 233 矩阵中,满足 ai,原创 2021-07-01 20:00:39 · 172 阅读 · 0 评论 -
《算法竞赛进阶指南》0x3B Matrix Power Series
题目传送门题目描述给定 n×nn×nn×n 矩阵 AAA 和正整数 kkk,求和 S=A+A2+A3+…+AkS=A+A^2+A^3+…+A^kS=A+A2+A3+…+Ak。数据范围1≤n≤30,1≤n≤30,1≤n≤30,1≤k≤109,1≤k≤10^9,1≤k≤109,1≤m<1041≤m<10^41≤m<104题解本题中就没有什么隐含的递推式子了,直接裸着给出来了要求的值这道题正解是用递归(分治)的方法来解决,但其实有一个巧妙而又神奇的方法,直接矩阵快速幂我们构造原创 2021-07-01 19:06:23 · 151 阅读 · 0 评论 -
《算法竞赛进阶指南》0x34 T2 石头游戏
题目传送门题目描述石头游戏在一个 n 行 m 列的网格上进行,每个格子对应一种操作序列,操作序列至多有 10 种,分别用 0∼9 这 10 个数字指明。操作序列是一个长度不超过 6 且循环执行、每秒执行一个字符的字符串。每秒钟,所有格子同时执行各自操作序列里的下一个字符。序列中的每个字符是以下格式之一:数字 0∼9:表示拿 0∼9 个石头到该格子。NWSE:表示把这个格子内所有的石头推到相邻的格子,N 表示上方,W 表示左方,S 表示下方,E 表示右方。D:表示拿走这个格子的所有石头。给定原创 2021-07-01 18:47:09 · 171 阅读 · 0 评论 -
《算法竞赛进阶指南》0x34 T1 Fibonacci
题目传送门题目描述在斐波那契数列中,Fib0=0,Fib1=1,Fibn=Fibn−1+Fibn−2(n>1)Fib_0=0,Fib_1=1,Fib_n=Fib_{n−1}+Fib_{n−2}(n>1)Fib0=0,Fib1=1,Fibn=Fibn−1+Fibn−2(n>1)。给定整数 nnn,求 Fibn mod 10000Fib_n\;mod\;10000Fibnmod10000。数据范围0≤n≤2×1090≤n≤2×10^90≤n≤2×109题解我们知道原创 2021-07-01 17:13:54 · 104 阅读 · 0 评论 -
《算法竞赛进阶指南》0x68 T1 关押罪犯
tmS 城现有两座监狱,一共关押着 N 名罪犯,编号分别为 1∼N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为 c 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为 c 的冲突事件。每年年末,警察局会将本年内监狱中的所有冲突事件按影响力从大到小排成一个列表,然后上报到 S 城 Z 市长那里。公务繁忙的 Z 市长只会原创 2021-06-28 09:56:35 · 118 阅读 · 0 评论 -
《算法竞赛进阶指南》0x49 T4 Buy Tickets
题目传送门题目描述达达在买回家的火车票,因为正值春运,售票处排起了长队。因为晚上室内光线很暗,所以很多人趁机插队。现在给每个人赋予一个整数作为编号,告诉你每一个排队的人的编号,和他进入队列时的具体位置。请你确定最终的队列顺序。题解这道题与Lost Cows是极其相似的(几乎一模一样)只是需要拿结构体存一下,最后我们按照身高排序进行输出即可code#include <bits/stdc++.h>using namespace std;const int N=2e5+10;原创 2021-06-27 23:04:17 · 119 阅读 · 0 评论 -
《算法竞赛进阶指南》0x42 T4 Lost Cows
题目传送门题目描述有 n 头奶牛,已知它们的身高为 1∼n 且各不相同,但不知道每头奶牛的具体身高。现在这 n 头奶牛站成一列,已知第 i 头牛前面有 Ai 头牛比它低,求每头奶牛的身高。题解由于只知道前面有多少奶牛比这头牛低,故无法从头开始遍历,因为你不知道后面的奶牛会对结果造成怎样的影响但从后向前遍历就不会存在后效性,我们先看最后一头牛,不需要考虑它后面的牛对他的影响(因为他后面没牛了),它能看见kkk头牛,证明它是第k+1k+1k+1高的牛接下来再处理倒数第二头牛,由于最后一头牛已经确定原创 2021-06-27 22:25:15 · 102 阅读 · 0 评论 -
《算法竞赛进阶指南》0x42 T3 A Simple Problem with Integers
题目传送门题目描述给定一个长度为 N 的数列 A,以及 M 条指令,每条指令可能是以下两种之一:C l r d,表示把 A[l],A[l+1],…,A[r] 都加上 d。Q l r,表示询问数列中第 l∼r 个数的和。对于每个询问,输出一个整数表示答案。题解在区间修改,单点查询的树状数组中,我们维护的差分数组的累加和最终答案也就是在axa_xax的基础上增加了∑i=1xbi\sum_{i=1}^{x}b_i∑i=1xbi,(bbb数组为朴素的差分数组)那么序列aaa的前缀和经修改后的原创 2021-06-27 21:32:47 · 174 阅读 · 0 评论 -
《算法竞赛进阶指南》0x42 T2 A Tiny Problem with Integers
题目传送门题目描述给定长度为 N 的数列 A,然后输入 M 行操作指令。第一类指令形如 C l r d,表示把数列中第 l∼r 个数都加 d。第二类指令形如 Q x,表示询问数列中第 x 个数的值。对于每个询问,输出一个整数表示答案。题解一道区间修改,单点查询的树状数组板子题此树状数组维护的不再是每个元素的值由于是区间修改的问题,为了减少时间复杂度,最容易想到的其实就是差分,而此树状数组维护的就是差分序列在朴素算法中,当我们进行了多次区间修改,再求某点的值时,会在这个点初始值的基础上,加原创 2021-06-27 20:38:17 · 101 阅读 · 0 评论 -
《算法竞赛进阶指南》0x42 T1 楼兰图腾
题目传送门题目描述在完成了分配任务之后,西部 314 来到了楼兰古城的西部。相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀(V),一个部落崇拜铁锹(∧),他们分别用 V 和 ∧ 的形状来代表各自部落的图腾。西部 314 在楼兰古城的下面发现了一幅巨大的壁画,壁画上被标记出了 n 个点,经测量发现这 n 个点的水平位置和竖直位置是两两不同的。西部 314 认为这幅壁画所包含的信息与这 n 个点的相对位置有关,因此不妨设坐标分别为 (1,y1),(2,y2),…,(n,yn)原创 2021-06-27 20:24:35 · 98 阅读 · 0 评论 -
《算法竞赛进阶指南》0x18 T13 Black Box
题目传送门题目描述黑盒子代表一个原始的数据库。它可以用来储存整数数组,并且它拥有一个特殊变量 i。在最开始,黑盒子是空的,并且 i=0。现在对黑盒子进行一系列的操作处理,操作包括以下两种:ADD(x):表示将 x 加入到黑盒子中。GET:使 i 增加 1,输出黑盒子中第 i 小的数值(即将所有数按升序排序后的第 i 个数)。下面给出一个具体例子:序号 操作 i 盒子内数(升序排列后) 输出的值1 ADD(3) 0 3原创 2021-06-24 00:30:28 · 109 阅读 · 0 评论 -
《算法竞赛进阶指南》0x17 T2 Sequence
题目传送门题目描述给定 mmm 个序列,每个包含 nnn 个非负整数。现在我们可以从每个序列中选择一个数字以形成具有 mmm 个整数的序列。很明显,我们一共可以得到 nmn^mnm 个这种序列,然后我们可以计算每个序列中的数字之和,并得到 nmn^mnm 个值。现在请你求出这些序列和之中最小的 nnn 个值。题解我们首先只考虑m=2的情况只有两个串,我们要去找最小的n个值首先我们将这两个串从小到大排序那么最小值一定为a1+b1a_1+b_1a1+b1我们去思考次小值,它可能是a1+原创 2021-06-24 00:23:31 · 74 阅读 · 0 评论 -
《算法竞赛进阶指南》0x17 T1 Supermarket
题目传送门题目描述超市里有 NNN 件商品,每件商品都有利润 pip_ipi 和过期时间 did_idi,每天只能卖一件商品,过期商品不能再卖。求合理安排每天卖的商品的情况下,可以得到的最大收益是多少。题解这道题算是一种典型的题目用堆来维护贪心的思想首先贪心的思想在本题中就是要让贵的商品在过期前尽量卖出去,所以我们可以维护一个堆,入堆的顺序就是过期时间的顺序堆中维护我们选择了那些商品接下来进行分情况讨论如果堆中元素个数与当前商品过期时间相同,其实就等价于当前商品还是可以及时卖出的,但原创 2021-06-24 00:10:11 · 83 阅读 · 0 评论 -
《算法竞赛进阶指南》0x18 T12 Phone List
题目传送门题目描述给出一个电话列表,如果列表中存在其中一个号码是另一个号码的前缀这一情况,那么就称这个电话列表是不兼容的。假设电话列表如下:Emergency 911Alice 97 625 999Bob 91 12 54 26在此例中,报警电话号码(911)为 Bob 电话号码(91 12 54 26)的前缀,所以该列表不兼容。题解很简单的一道trie树简单转化问题,判断是否存在一个数是另一个数的前缀,假设这两个数是x和y,y在x之后存入当y是x的前缀时,如果我们把整个y都放入tri原创 2021-06-22 21:02:04 · 60 阅读 · 0 评论 -
《算法竞赛进阶指南》0x16 T3 The XOR Longest Path
题目传送门题目描述给定一个树,树上的边都具有权值。树中一条路径的异或长度被定义为路径上所有边的权值的异或和:⊕ 为异或符号。给定上述的具有 n 个节点的树,你能找到异或长度最大的路径吗?题解求异或长度最大的路径,假设这条路径连接的两个点分别为x和y,进而可以转化为求从x到lca(x,y),和从lca(x,y)到y的路径异或和,继续转化为从x到根节点和从y到根节点的路径异或和,这两条路径中,从x到lca(x,y),和从lca(x,y)到y的路径只走了一次,但从lca(x,y)到根节点的路径是走原创 2021-06-22 20:55:03 · 73 阅读 · 0 评论 -
《算法竞赛进阶指南》0x16 T2 The XOR Largest Pair
题目传送门题目描述在给定的 NNN 个整数 A1,A2……ANA_1,A_2……A_NA1,A2……AN 中选出两个进行 xorxorxor(异或)运算,得到的结果最大是多少?题解通过trie树,我们是可以实现异或类型的题目的对于每一个数字,我们将它转化为一个二进制的串(位数不够的用0补齐),然后从最高位开始建立Trie树而对于查询操作,我们枚举其中一个数,将这个数放入trie树中查询,由于是异或操作,要使两个数不同才能使异或结果为1,进而使结果变大,要使结果最大,我们当然要使最高位尽量为原创 2021-06-22 20:43:50 · 94 阅读 · 0 评论 -
《算法竞赛进阶指南》0x16 T1 前缀统计
题目描述题目描述给定 N 个字符串 S1,S2…SN,接下来进行 M 次询问,每次询问给定一个字符串 T,求 S1∼SN 中有多少个字符串是 T 的前缀。输入字符串的总长度不超过 10610^6106,仅包含小写字母。题解约等于Trie树的模板题,Trie树就是可以快速查找当前字符串有没有出现过,而本题求的是当前字符串作为前缀出现过多少次两个点有所不同:1.是否出现过变为出现多少次2.查询字符串是否出现变为查询字符串前缀是否出现我们思考如何在Trie树的模板上进行修改,满足着两个条件首先原创 2021-06-22 20:33:34 · 116 阅读 · 0 评论 -
《算法竞赛进阶指南》0x18 T11 匹配统计
题目传送门题目描述阿轩在纸上写了两个字符串,分别记为 A 和 B。利用在数据结构与算法课上学到的知识,他很容易地求出了“字符串 A 从任意位置开始的后缀子串”与“字符串 B”匹配的长度。不过阿轩是一个勤学好问的同学,他向你提出了 Q 个问题:在每个问题中,他给定你一个整数 x,请你告诉他有多少个位置,满足“字符串 A 从该位置开始的后缀子串”与 B 匹配的长度恰好为 x。例如:A=aabcde,B=ab,则 A 有 aabcde、abcde、bcde、cde、de、e 这 6 个后缀子串,它们与原创 2021-06-21 22:35:05 · 126 阅读 · 0 评论 -
《算法竞赛进阶指南》0x18 T7 Matrix
题目链接题目描述给定一个 M 行 N 列的 01 矩阵(只包含数字 0 或 1 的矩阵),再执行 Q 次询问,每次询问给出一个 A 行 B 列的 01 矩阵,求该矩阵是否在原矩阵中出现过。题解这道题的思路其实并不难,就是判断一个矩形有没有在大矩形中出现过,很容易与字符串Hash挂上关系,也很容易发现需要维护一个二维的字符串Hash难点就在于如何去维护这个二维字符串Hash对于行之间的传递,使用一个Hash,而对于列之间的传递,使用另一个Hash具体来讲就是行和列上的转移中,是在不同的进制下进行原创 2021-06-21 22:29:05 · 118 阅读 · 0 评论 -
《算法竞赛进阶指南》0x14 T3 Palindrome
题目传送门题目描述如果一个字符串正着读和倒着读是一样的,则称它是回文的。给定一个长度为 N 的字符串 S,求他的最长回文子串的长度是多少。题解这也是一道经典的字符串Hash题目,要求找出最长的回文子串我们可以枚举每一个点作为回文子串的中心点,判断从它向两侧拓展,能构成的最长回文子串是多大的。因为回文的原因,我们需要求一遍Hash前缀和,再求一遍Hash后缀和,分别用来计算从左端点到中心的Hash值和从右端点到中心的Hash值。由于我们从中间向两边扩展,如果当前符合回文子串,那就可以继续向外扩原创 2021-06-21 22:20:16 · 91 阅读 · 0 评论 -
《算法竞赛进阶指南》0x14 T2 兔子与兔子
题目传送门题目描述很久很久以前,森林里住着一群兔子。有一天,兔子们想要研究自己的 DNA 序列。我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DNA 序列可能包含 26 个小写英文字母)。然后我们每次选择两个区间,询问如果用两个区间里的 DNA 序列分别生产出来两只兔子,这两个兔子是否一模一样。注意两个兔子一模一样只可能是他们的 DNA 序列一模一样。题解一道典型的字符串Hash题,我们只需要将字符串进行Hash,然后就可以O(1)O(1)O(1)的判断两个子串是否相同,应该就原创 2021-06-21 22:12:15 · 108 阅读 · 0 评论 -
《算法竞赛进阶指南》0x14 T1 Snowflake Snow Snowflakes
题目传送门题目描述您可能听说没有两个雪花是相似的。 你的任务是编写一个程序来确定这是否真的如此。 您的程序将读取有关雪花集合的信息,并搜索可能相同的一对。 每个雪花都有六个手臂。 对于每个雪花,您的程序将提供六个臂中每个臂的长度的测量。 任何具有相同长度相应臂的雪花都应该被程序标记为可能相同。输入格式第一行输入将包含一个整数n,0 ≤\leq≤ n ≤\leq≤ 100000,要遵循的雪花数量。 接下来是n行,每行描述一个雪花。 每个雪花将由包含六个整数的线(每个整数至少为0且小于1000000原创 2021-06-21 18:23:53 · 218 阅读 · 0 评论 -
《算法竞赛进阶指南》0x18 T5 Sliding Window
题目描述给定一个大小为 n≤106n≤10^6n≤106 的数组。有一个大小为 k 的滑动窗口,它从数组的最左边移动到最右边。你只能在窗口中看到 k 个数字。每次滑动窗口向右移动一个位置。你的任务是确定滑动窗口位于每个位置时,窗口中的最大值和最小值。题解单调队列的一道模板题吧不了解的可以看一下这道题目最大子序和我们去分别维护一个单调递增队列和一个单调递减队列只让可能作为最小值/最大值的答案放入队列中,其他的踢出队列,这样去维护一个单调队列,以减少时间复杂度又由于我们维护的是单调性的,所原创 2021-06-20 21:59:55 · 72 阅读 · 0 评论 -
《算法竞赛进阶指南》0x18 T3 City Game
题目传送门题目描述有一天,小猫 rainbow 和 freda 来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。这片土地被分成N×MN×MN×M 个格子,每个格子里写着 RRR 或者 F,RF,RF,R 代表这块土地被赐予了 rainbow,FFF 代表这块土地被赐予了 freda。现在 freda 要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着 FFF 并且面积最大。但是 rainbow 和 freda 的 OI 水平都弱爆了,找不出这块土地,而蓝兔原创 2021-06-18 21:18:14 · 88 阅读 · 0 评论 -
《算法竞赛进阶指南》0x11 T4 Largest Rectangle in a Histogram
题目传送门题目描述直方图是由在公共基线处对齐的一系列矩形组成的多边形。矩形具有相等的宽度,但可以具有不同的高度。例如,图例左侧显示了由高度为 2,1,4,5,1,3,32,1,4,5,1,3,32,1,4,5,1,3,3 的矩形组成的直方图,矩形的宽度都为 111:通常,直方图用于表示离散分布,例如,文本中字符的频率。现在,请你计算在公共基线处对齐的直方图中最大矩形的面积。图例右图显示了所描绘直方图的最大对齐矩形。输入格式输入包含几个测试用例。每个测试用例占据一行,用以描述一个直方图,原创 2021-06-18 21:00:20 · 84 阅读 · 0 评论 -
《算法竞赛进阶指南》0x18 T2 表达式计算4
题目传送门题目描述给出一个表达式,其中运算符仅包含+,−,∗,/,+,-,*,/,+,−,∗,/,^(加 减 乘 整除 乘方)要求求出表达式的最终值。数据可能会出现括号情况,还有可能出现多余括号情况。数据保证不会出现大于或等于2312^{31}231的答案。数据可能会出现负数情况。输入格式输入仅一行,即为表达式。输出格式输出仅一行,既为表达式算出的结果。输入样例:(2+2)^(1+1)输出样例:16题解计算表达式的值也是经典的用栈来解决的问题我们首先进行讲解我们平时使用的表原创 2021-06-18 20:26:07 · 250 阅读 · 1 评论 -
《算法竞赛进阶指南》0x21 T1 可达性统计
题目传送门题目描述给定一张 N 个点 M 条边的有向无环图,分别统计从每个点出发能够到达的点的数量。输入格式第一行两个整数 N,M,接下来 M 行每行两个整数 x,y,表示从 x 到 y 的一条有向边。输出格式输出共 N 行,表示每个点能够到达的点的数量。数据范围1≤N,M≤300001≤N,M≤300001≤N,M≤30000输入样例:10 103 82 32 55 95 92 33 94 82 104 9输出样例:1633211111题解原创 2021-06-06 08:19:21 · 103 阅读 · 0 评论 -
《算法竞赛进阶指南》0x6B T6 四叶草魔杖
题目传送门题目描述魔杖护法 Freda 融合了四件武器,于是魔杖顶端缓缓地生出了一棵四叶草,四片叶子幻发着淡淡的七色光。圣剑护法 rainbow 取出了一个圆盘,圆盘上镶嵌着 NNN 颗宝石,编号为 0∼N−10∼N−10∼N−1。第 i 颗宝石的能量是 Ai。如果 Ai>0A_i>0Ai>0,表示这颗宝石能量过高,需要把 AiA_iAi 的能量传给其它宝石;如果 Ai<0A_i<0Ai<0,表示这颗宝石的能量过低,需要从其它宝石处获取 −Ai−A_i−A原创 2021-06-02 19:35:05 · 139 阅读 · 0 评论 -
《算法竞赛进阶指南》0x62 T2 Picnic Planning
题目传送门题目描述一群小丑演员,以其出色的柔术表演,可以无限量的钻进同一辆汽车中,而闻名世界。现在他们想要去公园玩耍,但是他们的经费非常紧缺。他们将乘车前往公园,为了减少花费,他们决定选择一种合理的乘车方式,可以使得他们去往公园需要的所有汽车行驶的总公里数最少。为此,他们愿意通过很多人挤在同一辆车的方式,来减少汽车行驶的总花销。由此,他们可以很多人驾车到某一个兄弟的家里,然后所有人都钻进一辆车里,再继续前进。公园的停车场能停放的车的数量有限,而且因为公园有入场费,所以一旦一辆车子进入到公园内,原创 2021-06-02 18:33:57 · 107 阅读 · 0 评论 -
《算法竞赛进阶指南》0x6B T5 Arctic Network
题目传送门题目描述国防部(DND)希望通过无线网络连接几个北部前哨站。在建立网络时将使用两种不同的通信技术:每个前哨站都有一个无线电收发器,一些前哨站还有一个通信卫星。任意两个拥有通信卫星的前哨站不论它们的位置如何,都可以通过卫星进行通信。而如果利用无线电进行通信,则需要两个前哨站的距离不能超过 D 方可进行通信。而 D 的大小取决于收发器的功率,收发器的功率越大,D 也就越大,但是需要的成本也就越高。出于采购和维护的考虑,所有的前哨站都采用相同的收发器,也就是说所有前哨站的无线电通信距离 D原创 2021-06-02 16:32:41 · 132 阅读 · 1 评论 -
《算法竞赛进阶指南》0x62 T4 黑暗城堡
题目传送门题目描述在顺利攻破 Lord lsp 的防线之后,lqr 一行人来到了 Lord lsp 的城堡下方。Lord lsp 黑化之后虽然拥有了强大的超能力,能够用意念力制造建筑物,但是智商水平却没怎么增加。现在 lqr 已经搞清楚黑暗城堡有 N 个房间,M 条可以制造的双向通道,以及每条通道的长度。lqr 深知 Lord lsp 的想法,为了避免每次都要琢磨两个房间之间的最短路径,Lord lsp 一定会把城堡修建成树形的。但是,为了尽量提高自己的移动效率,Lord lsp 一定会使得城堡原创 2021-06-02 16:19:29 · 226 阅读 · 0 评论 -
《算法竞赛进阶指南》0x62 T1 走廊泼水节
题目传送门题目描述给定一棵 N 个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树。求增加的边的权值总和最小是多少。注意: 树中的所有边权均为整数,且新加的所有边权也必须为整数。输入格式第一行包含整数 t,表示共有 t 组测试数据。对于每组测试数据,第一行包含整数 N。接下来 N−1 行,每行三个整数 X,Y,Z,表示 X 节点与 Y 节点之间存在一条边,长度为 Z。输出格式每组数据输出一个整数,表示权值总和最小值。每个结果占一行。数据范围1≤原创 2021-06-02 15:12:06 · 115 阅读 · 0 评论 -
《算法竞赛进阶指南》0x49 T3 True Liars
题目传送门题目描述一个岛上存在着两种居民,一种是天神,一种是恶魔。天神永远都不会说假话,而恶魔永远都不会说真话。岛上的每一个成员都有一个整数编号(类似于身份证号,用以区分每个成员)。现在你拥有 n 次提问的机会,但是问题的内容只能是向其中一个居民询问另一个居民是否是天神,请你根据收集的回答判断各个居民的身份。输入格式输入包含多组测试用例。每组测试用例的第一行包含三个非负整数 n,p1,p2,其中 n 是你可以提问的总次数,p1 是天神的总数量,p2 是恶魔的总数量。接下来 n 行每行包含两原创 2021-05-29 16:11:06 · 157 阅读 · 0 评论 -
《算法竞赛进阶指南》0x49 T2 Rochambeau
题目描述N 个小朋友(编号为 0,1,2,…,N−1)一起玩石头剪子布游戏。其中一人为裁判,其余的人被分为三个组(有可能有一些组是空的),第一个组的小朋友只能出石头,第二个组的小朋友只能出剪子,第三个组的小朋友只能出布,而裁判可以使用任意手势。你不知道谁是裁判,也不知道小朋友们是怎么分组的。然后,孩子们开始玩游戏,游戏一共进行 M 轮,每轮从 N 个小朋友中选出两个小朋友进行猜拳。你将被告知两个小朋友猜拳的胜负结果,但是你不会被告知两个小朋友具体使用了哪种手势。比赛结束后,你能根据这些结果推断出原创 2021-05-28 16:54:12 · 229 阅读 · 2 评论 -
《算法竞赛进阶指南》0x49 T1 关押罪犯
题目传送门题目描述S 城现有两座监狱,一共关押着 N 名罪犯,编号分别为 1∼N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为 c 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为 c 的冲突事件。每年年末,警察局会将本年内监狱中的所有冲突事件按影响力从大到小排成一个列表,然后上报到 S 城 Z 市长那里。公务繁忙原创 2021-05-28 16:37:01 · 151 阅读 · 0 评论 -
《算法竞赛进阶指南》0x41 T5 食物链
题目传送门题目描述动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A 吃 B,B 吃 C,C 吃 A。现有 N 个动物,以 1∼N 编号。每个动物都是 A,B,C 中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这 N 个动物所构成的食物链关系进行描述:第一种说法是 1 X Y,表示 X 和 Y 是同类。第二种说法是 2 X Y,表示 X 吃 Y。此人对 N 个动物,用上述两种说法,一句接一句地说出 K 句话,这 K 句话有的是真的,有的是假的。当一句话满原创 2021-05-28 16:17:46 · 99 阅读 · 0 评论 -
《算法竞赛进阶指南》0x41 T4 Parity Game
题目传送门题目描述小 A 和小 B 在玩一个游戏。首先,小 A 写了一个由 0 和 1 组成的序列 S,长度为 N。然后,小 B 向小 A 提出了 M 个问题。在每个问题中,小 B 指定两个数 l 和 r,小 A 回答 S[l∼r] 中有奇数个 1 还是偶数个 1。机智的小 B 发现小 A 有可能在撒谎。例如,小 A 曾经回答过 S[1∼3] 中有奇数个 1,S[4∼6] 中有偶数个 1,现在又回答 S[1∼6] 中有偶数个 1,显然这是自相矛盾的。请你帮助小 B 检查这 M 个答案,并指出原创 2021-05-28 16:05:03 · 166 阅读 · 0 评论 -
《算法竞赛进阶指南》0x41 T3 银河英雄传说
题目传送门题目描述有一个划分为 N 列的星际战场,各列依次编号为 1,2,…,N。有 N 艘战舰,也依次编号为 1,2,…,N,其中第 i 号战舰处于第 i 列。有 T 条指令,每条指令格式为以下两种之一:M i j,表示让第 i 号战舰所在列的全部战舰保持原有顺序,接在第 j 号战舰所在列的尾部。C i j,表示询问第 i 号战舰与第 j 号战舰当前是否处于同一列中,如果在同一列中,它们之间间隔了多少艘战舰。现在需要你编写一个程序,处理一系列的指令。输入格式第一行包含整数 T,表示共有原创 2021-05-28 15:46:58 · 162 阅读 · 0 评论 -
《算法竞赛进阶指南》0x41 T2 Supermarket
题目传送门题目描述超市里有 N 件商品,每件商品都有利润 pi 和过期时间 di,每天只能卖一件商品,过期商品不能再卖。求合理安排每天卖的商品的情况下,可以得到的最大收益是多少。输入格式输入包含多组测试用例。每组测试用例,以输入整数 N 开始,接下来输入 N 对 pi 和 di,分别代表第 i 件商品的利润和过期时间。在输入中,数据之间可以自由穿插任意个空格或空行,输入至文件结尾时终止输入,保证数据正确。输出格式对于每组产品,输出一个该组的最大收益值。每个结果占一行。数据范围0≤N≤原创 2021-05-28 15:34:29 · 193 阅读 · 0 评论