算法竞赛进阶指南
年轻过成了秃顶
这个作者很懒,什么都没留下…
展开
-
(BZOJ1013)207. 球形空间产生器
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。有一个球形空间产生器能够在n维空间中产生一个坚硬的球体。现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧毁这个球形空间产生器。输入格式第一行是一个整数n。接下来的n+1行,每行有n个实数,表示球面上一点的n维坐标。每一个实数精确到小数点后6位,且其绝...原创 2019-08-22 15:35:46 · 117 阅读 · 0 评论 -
164. 可达性统计
给定一张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输出样例:1633211...原创 2019-08-02 10:56:16 · 171 阅读 · 0 评论 -
244. 谜一样的牛(树状数组)
题目链接:https://www.acwing.com/problem/content/245/有n头奶牛,已知它们的身高为 1~n 且各不相同,但不知道每头奶牛的具体身高。现在这n头奶牛站成一列,已知第i头牛前面有Ai头牛比它低,求每头奶牛的身高。输入格式第1行:输入整数n。第2…n行:每行输入一个整数Ai,第i行表示第i头牛前面有Ai头牛比它低。(注意:因为第1头牛前面没有牛...原创 2019-08-06 10:35:23 · 355 阅读 · 0 评论 -
243. 一个简单的整数问题2(树状数组变形)
题目链接:https://www.acwing.com/problem/content/244/给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“C l r d”,表示把 A[l],A[l+1],…,A[r] 都加上 d。2、“Q l r”,表示询问 数列中第 l~r 个数的和。对于每个询问,输出一个整数表示答案。输入格式第一行两个整数N,M。第二行N个整数A...原创 2019-08-06 09:22:54 · 276 阅读 · 0 评论 -
242. 一个简单的整数问题(树状数组)
题目链接:https://www.acwing.com/problem/content/248/给定长度为N的数列A,然后输入M行操作指令。第一类指令形如“C l r d”,表示把数列中第l~r个数都加d。第二类指令形如“Q X”,表示询问数列中第x个数的值。对于每个询问,输出一个整数表示答案。输入格式第一行包含两个整数N和M。第二行包含N个整数A[i]。接下来M行表示M条指令,每...原创 2019-08-05 22:34:22 · 184 阅读 · 0 评论 -
241. 楼兰图腾(树状数组)
题目链接: https://www.acwing.com/activity/content/6/在完成了分配任务之后,西部314来到了楼兰古城的西部。相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀(‘V’),一个部落崇拜铁锹(‘∧’),他们分别用V和∧的形状来代表各自部落的图腾。西部314在楼兰古城的下面发现了一幅巨大的壁画,壁画上被标记出了N个点,经测量发现这N个...原创 2019-08-05 21:59:24 · 198 阅读 · 1 评论 -
240. 食物链(扩展域并查集)
题目链接:https://www.acwing.com/problem/content/description/242/动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是”1 X Y”,...原创 2019-08-05 20:46:50 · 188 阅读 · 0 评论 -
239. 奇偶游戏(带权并查集)
题目链接:https://www.acwing.com/problem/content/description/241/参考博客:https://www.cnblogs.com/cytus/p/8999662.htmlhttps://blog.csdn.net/weixin_33785108/article/details/93960657小A和小B在玩一个游戏。首先,小A写了一个由0和1...原创 2019-08-05 18:12:27 · 205 阅读 · 0 评论 -
148. 合并果子
分析:这就是一个优先队列的题目了。每次优先取值最小的两个进行合并。#include"stdio.h"#include"string.h"#include"queue"#include"algorithm"using namespace std;typedef long long ll;int n;ll a[10010];int main(){ scanf("%d...原创 2019-07-31 22:15:28 · 104 阅读 · 0 评论 -
147. 数据备份(优先队列+模拟链表)
题目链接:https://www.acwing.com/problem/content/149/分析:根据题意,我们是要选择k对城市出来,并且k对城市之间的距离之和要最小。如果3号城市和四号城市为一对了。那么三号城市就不能和2号城市凑成一对。所以,我们可以把每个城市之间的距离算出来。从中选择最小的距离。但是需要注意,不一定是选择最小的,还有可能是选择最小两边的那两对。所以选择了D[i],...原创 2019-07-31 20:28:37 · 122 阅读 · 0 评论 -
C - Save Energy!
题目链接:https://vjudge.net/contest/317253#problem/CJulia is going to cook a chicken in the kitchen of her dormitory. To save energy, the stove in the kitchen automatically turns off after k minutes afte...原创 2019-08-04 21:15:35 · 352 阅读 · 0 评论 -
238. 银河英雄传说(带权并查集)
题目链接:https://www.acwing.com/problem/content/240/有一个划分为N列的星际战场,各列依次编号为1,2,…,N。有N艘战舰,也依次编号为1,2,…,N,其中第i号战舰处于第i列。有T条指令,每条指令格式为以下两种之一:1、M i j,表示让第i号战舰所在列的全部战舰保持原有顺序,接在第j号战舰所在列的尾部。2、C i j,表示询问第i号战舰与第j...原创 2019-08-04 16:02:53 · 187 阅读 · 0 评论 -
AcWing 245. 你能回答这些问题吗(线段树)
题目链接:https://www.acwing.com/problem/content/246/给定长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“1 x y”,查询区间 [x,y] 中的最大连续子段和,即 maxx≤l≤r≤y{∑ri=lA[i]}。2、“2 x y”,把 A[x] 改成 y。对于每个查询指令,输出一个整数表示答案。输入格式第一行两个整数N,M。...原创 2019-08-06 21:06:15 · 199 阅读 · 0 评论 -
246. 区间最大公约数(线段树+树状数组)
题目链接:https://www.acwing.com/problem/content/247/给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“C l r d”,表示把 A[l],A[l+1],…,A[r] 都加上 d。2、“Q l r”,表示询问 A[l],A[l+1],…,A[r] 的最大公约数(GCD)。对于每个询问,输出一个整数表示答案。输入格式第一行...原创 2019-08-09 10:27:58 · 448 阅读 · 0 评论 -
POJ1830 开关问题(异或方程组)
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。有N个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开关的状态如果原来为开就变为关,如果为关就变为开。你的目标是经过若干次开关操作后使得最后N个开关达到一个特定的状态。对于任意一个开关,最多只能进行一次开关操作。你的任务是,计算有多少...原创 2019-08-24 09:55:54 · 253 阅读 · 0 评论 -
203. 同余方程(扩展欧几里得)
题目链接:https://www.acwing.com/problem/content/description/205/求关于x的同余方程 ax ≡ 1(mod b) 的最小正整数解。输入格式输入只有一行,包含两个正整数a,b,用一个空格隔开。输出格式输出只有一行,包含一个正整数x,表示最小正整数解。输入数据保证一定有解。数据范围2≤a,b≤2∗109输入样例:3 10输出样...原创 2019-08-17 16:06:47 · 110 阅读 · 0 评论 -
Sumdiv poj1845(逆元+快速幂+快乘)
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。题目链接:http://poj.org/problem?id=1845DescriptionConsider two natural numbers A and B. Let S be the sum of all natural divisors of A^B. Determine S modulo 9901 (the r...原创 2019-08-17 15:28:10 · 169 阅读 · 0 评论 -
(POJ3696)The Luckiest number(好题 欧拉函数+快乘)
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。题目链接:http://poj.org/problem?id=3696DescriptionChinese people think of ‘8’ as the lucky digit. Bob also likes digit ‘8’. Moreover, Bob has his own lucky number L. N...原创 2019-08-17 11:05:38 · 117 阅读 · 0 评论 -
Visible Lattice Points poj3090
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。题目链接:https://www.acwing.com/problem/content/203/在一个平面直角坐标系的第一象限内,如果一个点(x,y)与原点(0,0)的连线中没有通过其他任何点,则称该点在原点处是可见的。例如,点(4,2)就是不可见的,因为它与原点的连线会通过点(2,1)。部分可见点与原点的连线如下图所示:...原创 2019-08-17 08:58:07 · 114 阅读 · 0 评论 -
200. Hankson的趣味题
题目链接:https://www.acwing.com/problem/content/202/Hanks博士是BT(Bio-Tech,生物技术)领域的知名专家,他的儿子名叫Hankson。现在,刚刚放学回家的Hankson正在思考一个有趣的问题。今天在课堂上,老师讲解了如何求两个正整数c1和c2的最大公约数和最小公倍数。现在Hankson认为自己已经熟练地掌握了这些知识,他开始思考一...原创 2019-08-16 18:10:47 · 199 阅读 · 0 评论 -
石头游戏ch3401
题目链接: https://www.acwing.com/problem/content/208/石头游戏在一个 n 行 m 列 (1≤n,m≤8) 的网格上进行,每个格子对应一种操作序列,操作序列至多有10种,分别用0~9这10个数字指明。操作序列是一个长度不超过6且循环执行、每秒执行一个字符的字符串。每秒钟,所有格子同时执行各自操作序列里的下一个字符。序列中的每个字符是以下格式之一:...原创 2019-08-21 18:49:09 · 276 阅读 · 0 评论 -
199. 余数之和
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。题目链接:https://www.acwing.com/problem/content/description/201/给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值。例如j(5, 3)=3 mod 1 + 3 mod 2 + 3 mod 3 + ...原创 2019-08-16 15:50:11 · 138 阅读 · 0 评论 -
poj2891 Strange Way to Expres Integers
题目链接;https://www.acwing.com/problem/content/description/206/题目描述:给定2n个整数a1,a2,…,an和m1,m2,…,mn,求一个最小的非负整数x,满足∀i∈[1,n],x≡mi(mod ai)。输入格式第1行包含整数n。第2…n行:每i+1行包含两个整数ai和mi,数之间用空格隔开。输出格式输出最小非负整数x,如...原创 2019-08-21 09:57:14 · 114 阅读 · 0 评论 -
HDU 3949 XOR (异或消元)
给定你由N个整数构成的整数序列,你可以从中选取一些(甚至一个)进行异或(XOR)运算,从而得到很多不同的结果。请问,所有能得到的不同的结果中第k小的结果是多少。输入格式第一行包含整数T,表示共有T组测试数据。对于每组测试数据,第一行包含整数N。第二行包含N个整数(均在1至1018之间),表示完整的整数序列。第三行包含整数Q,表示询问的次数。第四行包含Q个整数k1,k2,…,kQ,...原创 2019-08-25 10:41:25 · 229 阅读 · 0 评论 -
POJ3070Fibonacci(矩阵快速幂)
在斐波那契数列中,Fib0=0,Fib1=1,Fibn=Fibn−1+Fibn−2(n>1)。给定整数n,求Fibnmod10000。输入格式输入包含多组测试用例。每个测试用例占一行,包含一个整数n。当输入用例n=-1时,表示输入终止,且该用例无需处理。输出格式每个测试用例输出一个整数表示结果。每个结果占一行。数据范围0≤n≤2∗109输入样例:0999999...原创 2019-08-20 21:20:58 · 107 阅读 · 0 评论 -
装备购买(BZOJ4004)高斯消元+ 贪心
脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装备有 m 个属性,用向量z[i]=(ai,1,ai,2,…,ai,m) 表示,每个装备需要花费 ci。现在脸哥想买一些装备,但是脸哥很穷,所以总是盘算着怎样才能花尽量少的钱买尽量多的装备。对于脸哥来说,如果一件装备的属性能用购买的其他装备组合出(也就是说脸哥可以利用手上的这些装备组合出这件装备的效果),那么这件装备就没有买的必要了。...原创 2019-08-24 18:40:18 · 253 阅读 · 0 评论 -
237. 程序自动分(并查集)
题目链接:https://www.acwing.com/problem/content/239/在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设x1,x2,x3,…代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。例如,一...原创 2019-08-04 15:24:14 · 114 阅读 · 0 评论 -
178. 第K短路(bfs)
题目链接:https://www.acwing.com/problem/content/description/180/给定一张N个点(编号1,2…N),M条边的有向图,求从起点S到终点T的第K短路的长度,路径允许重复经过点或边。输入格式第一行包含两个整数N和M。接下来M行,每行包含三个整数A,B和L,表示点A与点B之间存在有向边,且边长为L。最后一行包含三个整数S,T和K,分别表示起点...原创 2019-08-04 13:25:51 · 183 阅读 · 0 评论 -
175. 电路维修(bfs)
题目链接:https://www.acwing.com/problem/content/description/177/达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被收留在地球上。翰翰的家里有一辆飞行车。有一天飞行车的电路板突然出现了故障,导致无法启动。电路板的整体结构是一个R行C列的网格(R,C≤500),如下图所示。电路.png每个格点都是电线的...原创 2019-08-04 09:54:40 · 224 阅读 · 0 评论 -
0301 递归实现指数型枚举
题目链接: contest-hunter.org:83/contest/0x00「基本算法」例题/0301 递归实现指数型枚举本题可以用一个递归思路解决。每一个数都有放或者不放两种状态。其实本题还可以用一个思路解决。一定有2^n种排列方案。所以可以通过位枚举来列举出所有的可能排列。#include"stdio.h"#include"string.h"#include"math.h"#i...原创 2019-06-04 23:43:43 · 159 阅读 · 0 评论 -
0103 最短Hamilton路径
题目链接: contest-hunter.org:83/contest/0x00「基本算法」例题/0103 最短Hamilton路径本题,很容易想到一种方法。就是将所有的排列全部列举出来,然后计算。但是很明显这种方法会时间超限。所以考虑状态压缩。将所有的方法用二进制比表示出来。一个整数用二进制比表示出来。为1的位置表示经过,为0的表示没经过。同时,还需要考虑当前是在哪一个位置上。所以我们可以用...原创 2019-06-04 22:31:00 · 175 阅读 · 0 评论 -
POJ1050 To the Max
题目链接:contest-hunter.org:83/contest/0x08「基本算法」练习/POJ1050 To the Max我就是个菜鸡。 啥都不会 呜呜呜这个题目可以说是一个dp了。也可以说是思维吧。有点难想。我们可以用三层循环。第一层循环是枚举区间的左列。第二层循环是枚举区间的右列。第三层循环则是枚举每一行。 这样的话就可以通过三层循环来表示出一个区间,不需要通过四层循环了。看...原创 2019-06-16 20:29:42 · 141 阅读 · 0 评论 -
ch0805 防线
题目链接:http://contest-hunter.org:83/contest/0x08「基本算法」练习/0805 防线(秦腾与教学评估)本题,数据范围很大。应该想到用二分。 可是二分怎么确定mid的左边还是右边呢。我们继续看题目。题目保证了至多只有一个奇数点。想一下,最多只有一个。那么本题是唯一答案。同时其他地方的点都是偶数点。所以我们可以用到前缀和。如果mid的前缀和是偶数,那么奇数...原创 2019-06-16 12:46:34 · 291 阅读 · 0 评论 -
0502 七夕祭
题目链接: http://contest-hunter.org:83/contest/0x00「基本算法」例题/0502 七夕祭这个题目用到的数学知识是真的多。第一,我们首先可以明确一点就是行和列之间的交换是互不影响的(即:将换两行之间的摊点数是不会影响列的)。所以我们可以行和列分开操作。第二,从行考虑,想一下每行都有一些摊点数量。现在我想要每一行的摊点数量相同。这是一个什么问题? 没错就是...原创 2019-06-09 20:37:52 · 562 阅读 · 0 评论 -
(ch1202) 蚯蚓
题目链接:http://contest-hunter.org:83/contest/0x10「基本数据结构」例题/1202 蚯蚓这个题真的是~~一言难尽 我真的无语了。先说一下这个题的基本思路吧。这个题目是个队列的题目。假定序列为a1 a2 a3 a4 a5 a6 a7 a8 a9并在此演示样例中 此序列是一个非降序的序列。第一秒选a1 得到两个新的长度分别为 m1 = a1 *...原创 2019-06-18 21:59:08 · 236 阅读 · 0 评论 -
(POJ3263)最高的牛
题目链接:https://www.acwing.com/problem/content/103/本题也是一个差分的简单应用。#include"stdio.h"#include"string.h"#include"map"#include"algorithm"using namespace std;int N,P,H,M;int a[10010];map <pair<...原创 2019-06-05 21:01:24 · 212 阅读 · 0 评论 -
(ch0304)IncDec序列
题目链接:http://contest-hunter.org:83/record/110256本题考查的知识点主要是差分,还有一个贪心的知识。对区间的操作。我们可以利用差分数组就能够转换为单点操作(既对差分数组里面的两个值分别进行+1和-1的操作)。本题的题意是要求我们让序列中的所有数最终成为一样的数。所以,于差分数组来说,就是把差分数组里面的第二位到最后一位改为0即可。又回顾一下,单点操作(...原创 2019-06-05 20:34:37 · 172 阅读 · 0 评论 -
(BZOJ1218)激光炸弹
题目链接:https://www.acwing.com/problem/content/101/本题考察的主要知识点是二维前缀和的应用。我们可以很明显得到一个推导公式:s[i][j] = s[i-1][j] + s[i][j-1] -s[i-1][j-1] + a[i][j];这个推导公式很容易就可以得到。所以可以在N^2的时间内得到二维数组的前缀和。然后在枚举每个R长度的正方形即可。...原创 2019-06-05 20:02:38 · 132 阅读 · 0 评论 -
(poj1845)约数之和
题目链接: https://www.acwing.com/problem/content/99/本题应该说是一个数学问题了。首先暴力肯定是不行的。首先我们把A分解质因数,表示为p1^c1 * p2 ^c2 * ~~ pn ^ cn.。那么A^B就可以表示为p1^(c1 * B) * p2 ^(c2 *B) ~~ pn ^ (cn * B).那么很明显了,所有约数的集合就是p1^k1,p2 ...原创 2019-06-05 13:40:51 · 157 阅读 · 0 评论 -
奇怪的汉诺塔
题目链接:https://www.acwing.com/problem/content/98/本题是三盘汉诺塔的延伸。三盘汉诺塔我们是可以用递推来求解的。设dp[n]表示求解该n盘3塔问题的最少步数,显然有dp[n] = 2 * dp[n - 1] + 1,既把前n-1个盘子从A柱移动B柱,在把第n个盘子从A柱移动C柱,最后又把前n-1个盘子从B柱移动到C柱。这是三塔的递推式。那么四塔的递推...原创 2019-06-05 12:29:44 · 125 阅读 · 0 评论