摘要: 题目地址:https://www.acwing.com/problem/content/description/905/ 题目描述: 年轻的探险家来到了一个印第安部落里。 在那里他和酋长的女儿相爱了,于是便向酋长去求亲。 酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。 探险家拿不出这么多金币 阅读全文
posted @ 2020-09-03 21:03 白菜茄子 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://www.acwing.com/problem/content/922/ 题目描述: H城是一个旅游胜地,每年都有成千上万的人前来观光。 为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路。 每条单程巴士线路从某个巴士站出发,依次途经若干 阅读全文
posted @ 2020-09-03 18:54 白菜茄子 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 一行中给出若干个整数,求这些整数的和 可以实现读取一行中任意个整数并确定这些整数的作用 #include <iostream> #include <string> #include <sstream> using namespace std; int main(){ string line; int 阅读全文
posted @ 2020-09-03 17:31 白菜茄子 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 如果有m次修改,就会存在m+1个版本如果某一个结点的信息发生的变化,就会创造一个全新的结点出来 struct{ int l,r;//表示左右子节点的下标,而不是表示其区间的左右端点 int cnt;//当前区间中一共有多少个数 }; 可持久化线段树难以进行区间修改的操作。因为它难以处理懒标记,因为有 阅读全文
posted @ 2020-09-01 19:24 白菜茄子 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 线段树 主要由五个操作:pushup():由子节点算父节点的信息。例如计算当前区间的总和,父亲节点等于左右两个结点的区间之和pushdown():由父节点传递给子节点的信息。也被称为懒标记。build():将一段区间初始化为线段树modify():修改某一个点或者某一个区间query():查询某一段 阅读全文
posted @ 2020-08-29 22:41 白菜茄子 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://www.acwing.com/problem/content/description/1279/ 题目描述: 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成。 有长为 N 的数列,不妨设为 a1,a2,…,aN。 有如下三种操作形式: 把数列中的一段数全部乘一 阅读全文
posted @ 2020-08-29 22:09 白菜茄子 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://www.acwing.com/problem/content/249/ 题目描述: 有几个古希腊书籍中包含了对传说中的亚特兰蒂斯岛的描述。 其中一些甚至包括岛屿部分地图。 但不幸的是,这些地图描述了亚特兰蒂斯的不同区域。 您的朋友Bill必须知道地图的总面积。 你自告奋勇写 阅读全文
posted @ 2020-08-29 12:35 白菜茄子 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题目地址: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 阅读全文
posted @ 2020-08-28 09:20 白菜茄子 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://www.acwing.com/problem/content/246/ 题目描述: 给定长度为N的数列A,以及M条指令,每条指令可能是以下两种之一: 1、“1 x y”,查询区间 [x,y] 中的最大连续子段和 2、“2 x y”,把 A[x] 改成 y。 对于每个查询指令 阅读全文
posted @ 2020-08-27 11:00 白菜茄子 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 树状数组用于求区间和问题这个数据结构比较简单,但是可能做题的时候都想不到竟然可以用树状数组可以做 解决的基本年问题o(lgn):1:快速的求前缀和2:修改某一个数 原理:基于二进制。x=2^i[k]+2^i[k-1]+...2^i[1]那么便可以将前x个数分为以下几个区间1:(x-2^i[1],x] 阅读全文
posted @ 2020-08-26 23:22 白菜茄子 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://www.acwing.com/problem/content/245/ 题目描述: 有n头奶牛,已知它们的身高为 1~n 且各不相同,但不知道每头奶牛的具体身高。 现在这n头奶牛站成一列,已知第i头牛前面有AiAi头牛比它低,求每头奶牛的身高。 输入格式 第1行:输入整数n 阅读全文
posted @ 2020-08-26 23:17 白菜茄子 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 题目地址: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”,表示询问 数列中 阅读全文
posted @ 2020-08-26 17:27 白菜茄子 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://www.acwing.com/problem/content/248/ 题目描述 给定长度为N的数列A,然后输入M行操作指令。 第一类指令形如“C l r d”,表示把数列中第l~r个数都加d。 第二类指令形如“Q X”,表示询问数列中第x个数的值。 对于每个询问,输出一个 阅读全文
posted @ 2020-08-26 13:04 白菜茄子 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://www.acwing.com/problem/content/description/243/ 题目描述: 在完成了分配任务之后,西部314来到了楼兰古城的西部。 相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀(‘V’),一个部落崇拜铁锹(‘∧’) 阅读全文
posted @ 2020-08-25 22:31 白菜茄子 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://www.acwing.com/problem/content/804/ 题目描述 假定有一个无限长的数轴,数轴上每个坐标上的数都是0。 现在,我们首先进行 n 次操作,每次操作将某一位置x上的数加c。 接下来,进行 m 次询问,每个询问包含两个整数l和r,你需要求出在区间[ 阅读全文
posted @ 2020-08-23 12:56 白菜茄子 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 离散化:有序:原先x<y,那么f(x)<f(y)用于范围比较大,例如[0,1e9],有的时候需要这些下标的数组来进行操作,例如并查集,但是不能开这么大,同时每次只有1e5个数,所以便可以进行离散化,将给出的1e5个数映射到[1,1e5+1]上去但是存在几个小难题;1:给出的数中存在重复元素2:如何算 阅读全文
posted @ 2020-08-23 12:46 白菜茄子 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://www.acwing.com/problem/content/1252/ 题目描述 Alice和Bob玩了一个古老的游戏:首先画一个 n×nn×n 的点阵(下图 n=3n=3 )。 接着,他们两个轮流在相邻的点之间画上红边和蓝边: 直到围成一个封闭的圈(面积不必为 11)为 阅读全文
posted @ 2020-08-22 18:10 白菜茄子 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://vijos.org/p/1369 描述 在你的帮助下,蔚蓝来到了埃及.在金字塔里,蔚蓝看到了一个问题,传说,能回答出这个问题的人就能受到埃及法老的祝福,可是蔚蓝日夜奋战,还是想不出来,你能帮帮他么?(XXX: 胡扯,教主怎么可能想不出来= _ =||)(WS这人说的=。=) 阅读全文
posted @ 2020-08-22 16:54 白菜茄子 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 子序列:在原序列中按照顺序取出的一些元素。可以不是在原序列中连续的动态规划中比较重要的就是初始值和状态转移方程 LIS:最长上升子序列问题:给定一个序列an,请你选出一个子序列,满足序列中的每一项都比他的前一项大解决:定义f(i)表示到达i位置且i在我选择的子序列中的最长上升子序列的长度。此时表示i 阅读全文
posted @ 2020-08-21 22:47 白菜茄子 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 除法和模运算 a%b=a-a/b*b 其中a/b是整数除法 约数和倍数 如果两个数字a,b,满足a%b=0,那么我们就说a是b的倍数,b是a的约数,记作b|a 通常情况下只考虑正约数和正倍数 求约数求数字n的所有约数: 1:O(n):从1枚举 n%i==0 2:O(n^0.5):约数总是成对出现,如 阅读全文
posted @ 2020-08-20 11:59 白菜茄子 阅读(628) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://vijos.org/p/1790 描述 H国有n个城市,城市与城市之间有m条单向道路,满足任何城市不能通过某条路径回到自己。 现在国王想给城市重新编号,令第i个城市的新的编号为a[i],满足所有城市的新的编号都互不相同,并且编号为[1,n]之间的整数。国王认为一个编号方案是 阅读全文
posted @ 2020-08-19 21:20 白菜茄子 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://www.luogu.com.cn/problem/P1137 题目描述 小明要去一个国家旅游。这个国家有N个城市,编号为1至N,并且有M条道路连接着,小明准备从其中一个城市出发,并只往东走到城市i停止。 所以他就需要选择最先到达的城市,并制定一条路线以城市i为终点,使得线路 阅读全文
posted @ 2020-08-19 19:34 白菜茄子 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 拓扑排序在百度百科中的解释是:对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。 转换为显示中比较容易理解的例子就是,在大学有学过课程需要学习 阅读全文
posted @ 2020-08-19 15:57 白菜茄子 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 树:连通的、无环的无向图。特征:n个结点,n-1条无向边,且连通。任意两点之间的路径唯一。填边一条边就会产生环。生成树:无向连通图的包含所有顶点的极小连通子图。最小生成树:各边权值总和最小的生成树。 Kruskal算法:1:按照权重从小到大给边排一个序2:首先创建一个无边的图,并且可以相互到达的结点 阅读全文
posted @ 2020-08-15 08:02 白菜茄子 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://www.luogu.com.cn/problem/P3275 题目描述 幼儿园里有 N 个小朋友, 老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,需要满 阅读全文
posted @ 2020-08-14 22:52 白菜茄子 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://www.luogu.com.cn/problem/P1948 题目描述: 多年以后,笨笨长大了,成为了电话线布置师。由于地震使得某市的电话线全部损坏,笨笨是负责接到震中市的负责人。该市周围分布着N(1<=N<=1000)根据1……n顺序编号的废弃的电话线杆,任意两根线杆之间 阅读全文
posted @ 2020-08-12 23:09 白菜茄子 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://vijos.org/p/1754 描述 C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道路在统计条数时也计为 1 条。 C 阅读全文
posted @ 2020-08-12 21:19 白菜茄子 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 模板题:https://www.luogu.com.cn/problem/P4568 题目描述 Alice 和 Bob 现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在nn个城市设有业务,设这些城市分别标记为 00到 n-1,一共有 m 种航线,每种航线连接两个城市,并且航线有一 阅读全文
posted @ 2020-08-11 23:25 白菜茄子 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 存储图的信息时,一般需要存储的是边的信息。 边的信息:两个结点,权值 一般的方式包含:邻接矩阵、邻接表 通常而言邻接表是指的用链表实现的。但是链表存在的问题是非常容易出错。 所以在邻接表的思想上使用了vector存储和链式前向星 模板代码: int cnt=0; int head[N];//链式前向 阅读全文
posted @ 2020-08-11 10:50 白菜茄子 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://www.luogu.com.cn/problem/P3110 题意: Bessie 和 Elsie在不同的区域放牧,他们希望花费最小的能量返回谷仓。从一个区域走到一个相连区域,Bessie要花费B单位的能量,Elsie要花费E单位的能量。 如果某次他们两走到同一个区域,Be 阅读全文
posted @ 2020-08-11 10:36 白菜茄子 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 简介: 解决单源最短路径问题用队列优化的Bellman-Ford算法把源点的最短路径估计值设为0,入队一般不使用,使用Dijstra,不过在某些问题可能会有特殊用途O(kE) k是一个常数,一般为2左右,但是极端情况下会出现O(VE),所以其复杂度不是稳定的 步骤思想: 1:起点s入队,计算它所有邻 阅读全文
posted @ 2020-08-10 22:29 白菜茄子 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 解决:单源最短路问题(一个源点到其余所有点的最短路问题) 堆优化复杂度:O(nlogn) 算法思想:可以理解为多米诺骨牌,先到达点t的骨牌有贡献,后到达的骨牌无贡献。利用贪心的思想 步骤:源点s 1:首先将所有的点分为两类,一类是已经找到到源点s的最短路的点S,一类是没有找到T。起初S中只有源点s 阅读全文
posted @ 2020-08-10 09:16 白菜茄子 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 在带权图中,求解的是最短的权重路径;在无权图中,将每一条边的权重,都看做单位权重,也就是每条边的权重是1 Floyd-Warshall算法解决问题:所有节点对的最短路径问题解决方式:从图的邻接矩阵推导出最短路径矩阵算法思想:对于其中的一个结点k而言,对于任何一个起点i终点j而言,只有两种情况:经过k 阅读全文
posted @ 2020-08-10 08:39 白菜茄子 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://vijos.org/p/1446 描述 一个无向图上,没有自环,所有边的权值均为1,对于一个点对(a,b),我们要把所有a与b之间所有最短路上的点的总个数输出。 格式 输入格式 第一行n,m,表示n个点,m条边接下来m行,每行两个数a,b,表示a,b之间有条边在下来一个数p 阅读全文
posted @ 2020-08-09 21:03 白菜茄子 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 存储图的信息基本有3种方法 1:邻接矩阵 使用一个n*n的二维数组,a[i][j]表示结点i到结点j之间存在一条边。临街矩阵既可以存储有向图,也可存储无向图,既可以只是单纯的表示两个结点之间是否连通,也可以表示含有权值的图。无向图存储的只是需要记住a[i][j]=a[j][i]就可以了 优点:便于理 阅读全文
posted @ 2020-08-08 23:24 白菜茄子 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 一 有n个数,选择连续的k个数,求这k个数的最小值,切实从k到n进行遍历,那么就需要使用双端队列实现的单调队列 思维逻辑题集中的洛谷好消息坏消息就是这样的一个例题 写于2020/8/7 23:02 阅读全文
posted @ 2020-08-07 23:02 白菜茄子 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://www.luogu.com.cn/problem/P2629 题意:有n个消息,每个消息有一个权值,这n个消息本身就有一个自己的排序(按照输入给出的顺序)1....n,现在你需要读取这n个消息,你一共有n种读取的顺序。k k+1 k+2....n 1 2 .. k-1.现在 阅读全文
posted @ 2020-08-07 22:58 白菜茄子 阅读(190) 评论(0) 推荐(0) 编辑
摘要: pair是将两个数据合为一个数据单位进行存储级联,相当于一个含有两个元素的结构体类型。两个元素分别为first和second pair<Type1,Type2>pa; //创建 pair<Typr1,Type2>pa(v1,u1);//创建并初始化 make_pair(v1,u1); //创建一个p 阅读全文
posted @ 2020-08-07 12:26 白菜茄子 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6832 题意:在一个n个结点,m条边的无向连通图中,且第i条边的权值为2i,每个结点有一个值,为1或者0。d(i,j)表示结点i到结点j之间的最短距离。对所有节点求所有的可能配对形式d(i,j)*[a[i 阅读全文
posted @ 2020-08-07 12:16 白菜茄子 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 题目地址:https://www.luogu.com.cn/problem/P1714 题意:给定n个数,从中选择最多m个连续的数,使得这些数的和最大 输入:第一行n,m。第二行,n个整数 输出:输出所选择的数的和 题解:这道题第一感觉肯定是前缀和,但是这里有一个难点,就是最多是选择m个连续的数,而 阅读全文
posted @ 2020-08-06 12:00 白菜茄子 阅读(262) 评论(0) 推荐(0) 编辑