自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 选择最佳线路

选择最佳线路有一天,琪琪想乘坐公交车去拜访她的一位朋友。由于琪琪非常容易晕车,所以她想尽快到达朋友家。现在给定你一张城市交通路线图,上面包含城市的公交站台以及公交线路的具体分布。已知城市中共包含 n 个车站(编号1~n)以及 m 条公交线路。每条公交线路都是 单向的,从一个车站出发直接到达另一个车站,两个车站之间可能存在多条公交线路。琪琪的朋友住在 s 号车站附近。琪琪可以在任何车站选择换乘其它公共汽车。请找出琪琪到达她的朋友家(附近的公交车站)需要花费的最少时间。输入格式输入包含多组测

2021-08-19 21:58:07 229

原创 牛的旅行(floyd算法)

牛的旅行农民John的农场里有很多牧区,有的路径连接一些特定的牧区。一片所有连通的牧区称为一个牧场。但是就目前而言,你能看到至少有两个牧区不连通。现在,John想在农场里添加一条路径(注意,恰好一条)。一个牧场的直径就是牧场中最远的两个牧区的距离(本题中所提到的所有距离指的都是最短的距离)。考虑如下的两个牧场,每一个牧区都有自己的坐标:1.png图 1 是有 5 个牧区的牧场,牧区用“*”表示,路径用直线表示。图 1 所示的牧场的直径大约是 12.07106, 最远的两个牧区是 A 和 E

2021-08-19 21:48:42 191

原创 排序(传递闭包)

排序给定 n 个变量和 m 个不等式。其中 n 小于等于 26,变量分别用前 n 的大写英文字母表示。不等式之间具有传递性,即若 A>B 且 B>C,则 A>C。请从前往后遍历每对关系,每次遍历时判断:如果能够确定全部关系且无矛盾,则结束循环,输出确定的次序;如果发生矛盾,则结束循环,输出有矛盾;如果循环结束时没有发生上述两种情况,则输出无定解。输入格式输入包含多组测试数据。每组测试数据,第一行包含两个整数 n 和 m。接下来 m 行,每行包含一个不等式,不等式全部为小

2021-08-19 21:33:43 195

原创 观光之旅(最小环)

观光之旅给定一张无向图,求图中一个至少包含 3 个点的环,环上的节点不重复,并且环上的边的长度之和最小。该问题称为无向图的最小环问题。你需要输出最小环的方案,若最小环不唯一,输出任意一个均可。输入格式第一行包含两个整数 N 和 M,表示无向图有 N 个点,M 条边。接下来 M 行,每行包含三个整数 u,v,l,表示点 u 和点 v 之间有一条边,边长为 l。输出格式输出占一行,包含最小环的所有节点(按顺序输出),如果不存在则输出 No solution.。数据范围1≤N≤100,1.

2021-08-19 21:17:39 85

原创 路径总和 II

路径总和 II给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。示例 1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22输出:[[5,4,11,2],[5,8,4,5]]示例 2:输入:root = [1,2,3], targetSum = 5输出:[]示例 3:输入:root = [1,.

2021-08-16 13:56:53 79

原创 数独(一道经典的dfs题目)

数独数独是一种传统益智游戏,你需要把一个 9×9 的数独补充完整,使得图中每行、每列、每个 3×3 的九宫格内数字 1∼9 均恰好出现一次。请编写一个程序填写数独。输入格式输入包含多组测试用例。每个测试用例占一行,包含 81 个字符,代表数独的 81 个格内数据(顺序总体由上到下,同行由左到右)。每个字符都是一个数字(1−9)或一个 .(表示尚未填充)。您可以假设输入中的每个谜题都只有一个解决方案。文件结尾处为包含单词 end 的单行,表示输入结束。输出格式每个测试用例,输出一行数据,代

2021-08-13 17:07:05 402

原创 树的最长路径

树的最长路径给定一棵树,树中包含 n 个结点(编号1~n)和 n−1 条无向边,每条边都有一个权值。现在请你找到树中的一条最长路径。换句话说,要找到一条路径,使得使得路径两端的点的距离最远。注意:路径中可以只包含一个点。输入格式第一行包含整数 n。接下来 n−1 行,每行包含三个整数 ai,bi,ci,表示点 ai 和 bi 之间存在一条权值为 ci 的边。输出格式输出一个整数,表示树的最长路径的长度。数据范围1≤n≤10000,1≤ai,bi≤n,−105≤ci≤105输入样例

2021-08-11 16:44:56 352

原创 旅行问题(单调队列)

旅行问题John 打算驾驶一辆汽车周游一个环形公路。公路上总共有 n 个车站,每站都有若干升汽油(有的站可能油量为零),每升油可以让汽车行驶一千米。John 必须从某个车站出发,一直按顺时针(或逆时针)方向走遍所有的车站,并回到起点。在一开始的时候,汽车内油量为零,John 每到一个车站就把该站所有的油都带上(起点站亦是如此),行驶过程中不能出现没有油的情况。任务:判断以每个车站为起点能否按条件成功周游一周。输入格式第一行是一个整数 n,表示环形公路上的车站数;接下来 n 行,每行两个整数

2021-08-11 12:38:09 231

原创 最大子序和

最大子序和输入一个长度为 n 的整数序列,从中找出一段长度不超过 m 的连续子序列,使得子序列中所有数的和最大。注意: 子序列的长度至少是 1。输入格式第一行输入两个整数 n,m。第二行输入 n 个数,代表长度为 n 的整数序列。同一行数之间用空格隔开。输出格式输出一个整数,代表该序列的最大子序和。数据范围1≤n,m≤300000输入样例:6 41 -3 5 1 -2 3输出样例:7思路分析:我们一看这个题首先会想到这是一个动态规划的问题,我们用dp[i][j]来表示前i.

2021-08-10 22:51:56 312

原创 有依赖的背包问题

有依赖的背包问题有 N 个物品和一个容量是 V 的背包。物品之间具有依赖关系,且依赖关系组成一棵树的形状。如果选择一个物品,则必须选择它的父节点。如下图所示:QQ图片20181018170337.png如果选择物品5,则必须选择物品1和2。这是因为2是5的父节点,1是2的父节点。每件物品的编号是 i,体积是 vi,价值是 wi,依赖的父节点编号是 pi。物品的下标范围是 1…N。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行有两个整数.

2021-07-29 11:38:58 429

原创 最短Hamilton路径

最短Hamilton路径给定一张 n 个点的带权无向图,点从 0∼n−1 标号,求起点 0 到终点 n−1 的最短 Hamilton 路径。Hamilton 路径的定义是从 0 到 n−1 不重不漏地经过每个点恰好一次。输入格式第一行输入整数 n。接下来 n 行每行 n 个整数,其中第 i 行第 j 个整数表示点 i 到 j 的距离(记为 a[i,j])。对于任意的 x,y,z,数据保证 a[x,x]=0,a[x,y]=a[y,x] 并且 a[x,y]+a[y,z]≥a[x,z]。输出格式.

2021-07-25 16:45:28 261

原创 最长公共子序列

最长公共子序列给定两个长度分别为 N 和 M 的字符串 A 和 B,求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。输入格式第一行包含两个整数 N 和 M。第二行包含一个长度为 N 的字符串,表示字符串 A。第三行包含一个长度为 M 的字符串,表示字符串 B。字符串均由小写字母构成。输出格式输出一个整数,表示最大长度。数据范围1≤N,M≤1000输入样例:4 5acbdabedc输出样例:3难度:简单时/空限制:1s / 64MB思路分析:这是一个典型的动

2021-07-20 10:37:23 122

原创 数字三角形

数字三角形给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 88 1 02 7 4 44 5 2 6 5输入格式第一行包含整数 n,表示数字三角形的层数。接下来 n 行,每行包含若干整数,其中第 i 行表示数字三角形第 i 层包含的整数。输出格式输出一个整数,表示最大的路径数字和。数据范围1≤n≤500,−10

2021-07-20 10:15:07 188

原创 spfa 算法判断负环求最短路

简单单源最短路径问题输入数据给出一个有 N 个节点,M 条边的带权有向图。要求你写一个程序,判断这个有向图中是否存在负权回路。如果从一个点沿着某条路径出发,又回到了自己,而且所经过的边上的权和小于0,就说这条路是一个负权回路。如果存在负权回路,只输出一行 −1;如果不存在负权回路,再求出一个点 S 到每个点的最短路的长度。约定: S 到 S 的距离为 0,如果 S 与这个点不连通, 则输出NoPath。输入格式第一行三个正整数,分别为点数 N,边数 M,源点 S;以下 M 行,每行三个.

2021-07-16 20:59:31 209

原创 表达式求值

表达式求值给定一个表达式,其中运算符仅包含 +,-,,/(加 减 乘 整除),可能包含括号,请你求出表达式的最终值。注意:数据保证给定的表达式合法。题目保证符号 - 只作为减号出现,不会作为负号出现,例如,-1+2,(2+2)(-(1+1)+2) 之类表达式均不会出现。题目保证表达式中所有数字均为正整数。题目保证表达式在中间计算过程以及结果中,均不超过 231−1。题目中的整除是指向 0 取整,也就是说对于大于 0 的结果向下取整,例如 5/3=1,对于小于 0 的结果向上取整,例如 5/(1

2021-07-13 18:37:20 151

原创 离散化算法 区间和

区间和假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。接下来,进行 m 次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r] 之间的所有数的和。输入格式第一行包含两个整数 n 和 m。接下来 n 行,每行包含两个整数 x 和 c。再接下来 m 行,每行包含两个整数 l 和 r。输出格式共 m 行,每行输出一个询问中所求的区间内数字和。数据范围−109≤x≤109,1≤n,m≤105,−10

2021-07-13 11:10:05 180

原创 区间选点 贪心法

将每个区间按照右端点从小到大进行排序从前往后枚举区间,end值初始化为无穷小如果本次区间不能覆盖掉上次区间的右端点, end < node[i].a说明需要选择一个新的点, res ++ ; end = node[i].b如果本次区间可以覆盖掉上次区间的右端点,则进行下一轮循环时间复杂度 O(n)#include<iostream>#include<algorithm>using namespace std;const int N=1e5+10;struct

2021-05-27 20:44:50 60

原创 最长上升子序列

最长上升子序列给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数 N。第二行包含 N 个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤1000,−109≤数列中的数≤109输入样例:73 1 2 1 8 5 6输出样例:4思路分析:这是一个典型的动态规划问题,我们可以这样来考虑,对于每一个以i结尾的最大上升子串必然可以通过向前找到第一个比它更小的值进而得到当前值,而每一个初始时就是以自己为最大长度的上升子串,

2021-05-07 23:23:59 57

原创 石子合并

石子合并设有 N 堆石子排成一排,其编号为 1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这 N 堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有 4 堆石子分别为 1 3 5 2, 我们可以先合并 1、2 堆,代价为 4,得到 4 5 2, 又合并 1,2 堆,代价为 9,得到 9 2 ,再合并得到 11,总代价为 4+9+11=24;如果第二步

2021-05-07 13:40:06 108 1

原创 完全背包问题

完全背包问题有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。第 i 种物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 种物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,wi≤1000输入样例4

2021-05-07 13:00:49 73

原创 01背包问题

01背包问题有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,wi≤1000输入样例4 5

2021-05-07 12:46:49 114 2

原创 算法竞赛进阶指南 兔子与兔子

兔子与兔子很久很久以前,森林里住着一群兔子。有一天,兔子们想要研究自己的 DNA 序列。我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DNA 序列可能包含 26 个小写英文字母)。然后我们每次选择两个区间,询问如果用两个区间里的 DNA 序列分别生产出来两只兔子,这两个兔子是否一模一样。注意两个兔子一模一样只可能是他们的 DNA 序列一模一样。输入格式第一行输入一个 DNA 字符串 S。第二行一个数字 m,表示 m 次询问。接下来 m 行,每行四个数字 l1,r1,l2,.

2021-05-05 10:59:08 108

原创 切蛋糕

切蛋糕今天是小 Z 的生日,同学们为他带来了一块蛋糕。这块蛋糕是一个长方体,被用不同色彩分成了 N 个相同的小块,每小块都有对应的幸运值。小 Z 作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大,但小 Z 最多又只能吃 M 小块 (M≤N) 的蛋糕。吃东西自然就不想思考了,于是小 Z 把这个任务扔给了学 OI 的你,请你帮他从这 N 小块中找出连续的 k 块蛋糕 (k≤M),使得其上的幸运值最大。输入格式第一行包含两个整数 N 和 M,表示共有 N 小块蛋糕,小Z最多只能吃 M 小块。第.

2021-05-04 13:43:07 124

原创 逛画展

逛画展博览馆正在展出由世上最佳的 M 位画家所画的图画。wangjy 想到博览馆去看这几位大师的作品。可是,那里的博览馆有一个很奇怪的规定,就是在购买门票时必须说明两个数字,a 和 b,代表他要看展览中的第 a 幅至第 b 幅画(包含 a 和 b)之间的所有图画,而门票的价钱就是一张图画一元。为了看到更多名师的画,wangjy 希望入场后可以看到所有名师的图画(至少各一张)。可是他又想节省金钱。。。作为 wangjy 的朋友,他请你写一个程序决定他购买门票时的 a 值和 b 值。输入格式第一

2021-05-04 13:23:32 59

原创 算法竞赛进阶指南 最大子序和

最大子序和输入一个长度为 n 的整数序列,从中找出一段长度不超过 m 的连续子序列,使得子序列中所有数的和最大。注意: 子序列的长度至少是 1。输入格式第一行输入两个整数 n,m。第二行输入 n 个数,代表长度为 n 的整数序列。同一行数之间用空格隔开。输出格式输出一个整数,代表该序列的最大子序和。数据范围1≤n,m≤300000输入样例:6 41 -3 5 1 -2 3输出样例:7思路分析:单调队列 O(N)计算区间和,我们很容易想到前缀和,也就是说我们要查询[l,r.

2021-05-04 13:02:54 135

原创 算法竞赛进阶指南 双端队列

双端队列达达现在碰到了一个棘手的问题,有 N 个整数需要排序。达达手头能用的工具就是若干个双端队列。她从 1 到 N 需要依次处理这 N 个数,对于每个数,达达能做以下两件事:1.新建一个双端队列,并将当前数作为这个队列中的唯一的数;2.将当前数放入已有的队列的头之前或者尾之后。对所有的数处理完成之后,达达将这些队列按一定的顺序连接起来后就可以得到一个非降的序列。请你求出最少需要多少个双端序列。输入格式第一行输入整数 N,代表整数的个数。接下来 N 行,每行包括一个整数 Di,代表所.

2021-05-02 19:16:21 184 2

原创 算法竞赛进阶指南 小组队列

小组队列有 n 个小组要排成一个队列,每个小组中有若干人。当一个人来到队列时,如果队列中已经有了自己小组的成员,他就直接插队排在自己小组成员的后面,否则就站在队伍的最后面。请你编写一个程序,模拟这种小组队列。输入格式:输入将包含一个或多个测试用例。对于每个测试用例,第一行输入小组数量 t。接下来 t 行,每行输入一个小组描述,第一个数表示这个小组的人数,接下来的数表示这个小组的人的编号。编号是 0 到 999999 范围内的整数。一个小组最多可包含 1000 个人。最后,命令列表如下.

2021-04-23 13:31:03 166

原创 算法竞赛进阶指南 合并果子

合并果子在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。达达决定把所有的果子合成一堆。每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n−1 次合并之后,就只剩下一堆了。达达在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以达达在合并果子时要尽可能地节省体力。假定每个果子重量都为 1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使达达耗费的.

2021-04-23 13:03:11 59

原创 算法竞赛进阶指南 超市

超市超市里有 N 件商品,每件商品都有利润 pi 和过期时间 di,每天只能卖一件商品,过期商品不能再卖。求合理安排每天卖的商品的情况下,可以得到的最大收益是多少。输入格式输入包含多组测试用例。每组测试用例,以输入整数 N 开始,接下来输入 N 对 pi 和 di,分别代表第 i 件商品的利润和过期时间。在输入中,数据之间可以自由穿插任意个空格或空行,输入至文件结尾时终止输入,保证数据正确。输出格式对于每组产品,输出一个该组的最大收益值。每个结果占一行。数据范围0≤N≤10000,.

2021-04-22 21:36:49 77

原创 算法竞赛进阶指南 递归实现排列型枚举

递归实现排列型枚举把 1∼n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。输入格式一个整数 n。输出格式按照从小到大的顺序输出所有方案,每行 1 个。首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。数据范围1≤n≤9输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1思路分析:这个题我们可以用深度优先搜索,由于题目要求字典序小的排在前面,所以我们要优先选择当前的数,.

2021-04-19 11:10:03 178

原创 算法竞赛进阶指南 递归实现组合型枚举

递归实现组合型枚举从 1∼n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。输入格式两个整数 n,m ,在同一行用空格隔开。输出格式按照从小到大的顺序输出所有方案,每行 1 个。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如 1 3 5 7 排在 1 3 6 8 前面)。数据范围n>0 ,0≤m≤n ,n+(n−m)≤25输入样例:5 3输出样例:1 2 31 2 41 2.

2021-04-19 10:51:37 231

原创 算法竞赛进阶指南 递归实现指数型枚举

递归实现指数型枚举从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数 n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好 1 个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15输入样例:3输出样例:322 311 31 21 2 3思路分析:这是一个典型的深度优先搜索问题,对于1到n的每一个数我们都有两种选择,即选择当前的.

2021-04-19 10:33:55 67

原创 算法竞赛进阶指南 64位整数的乘法

64位整数乘法题目求 a 乘 b 对 p 取模的值。输入格式第一行输入整数a,第二行输入整数b,第三行输入整数p。输出格式输出一个整数,表示a*b mod p的值。数据范围1≤a,b,p≤1018输入样例:345输出样例:2思路分析:如果直接计算,结果就会超过long long的最大范围,我们一个可行的方法就是用类似于快速幂的思想将b表示成二进制数,如果b的当前位为1,就加上它的a的2的n次方,然后每次取模就可以了,可以看如下的例子例:计算 3*77的二进制 1113.

2021-04-19 10:17:55 233

原创 算法竞赛进阶指南 耍杂技的牛

农民约翰的 N 头奶牛(编号为 1…N)计划逃跑并加入马戏团,为此它们决定练习表演杂技。奶牛们不是非常有创意,只提出了一个杂技表演:叠罗汉,表演时,奶牛们站在彼此的身上,形成一个高高的垂直堆叠。奶牛们正在试图找到自己在这个堆叠中应该所处的位置顺序。这 N 头奶牛中的每一头都有着自己的重量 Wi 以及自己的强壮程度 Si。一头牛支撑不住的可能性取决于它头上所有牛的总重量(不包括它自己)减去它的身体强壮程度的值,现在称该数值为风险值,风险值越大,这只牛撑不住的可能性越高。您的任务是确定奶牛的排序,使

2021-04-14 10:37:31 148

原创 求 a 的 b 次方对 p 取模的值。

算法竞赛进阶指南位运算求 a 的 b 次方对 p 取模的值。输入格式三个整数 a,b,p ,在同一行用空格隔开。输出格式输出一个整数,表示a^b mod p的值。数据范围0≤a,b≤1091≤p≤109输入样例:3 2 7输出样例:2思路分析:首先可以将a的b次方转化为二进制表示,然后用一个b&1的与运算,判断一下该二进制表示下第i位是否为1,如果为1结果为true,否则为false,标题 快速幂思想#includeusing namespace std;int

2021-04-14 10:01:44 2312

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除