![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 63
海马有力量
Ship it!
展开
-
【PTA】L2-038 病毒溯源 (25 分)(DFS求最长路径并记录)
L2-038 病毒溯源 (25 分)病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株,而这些变异的病毒又可能被诱发突变产生第二代变异,如此继续不断变化。现给定一些病毒之间的变异关系,要求你找出其中最长的一条变异链。在此假设给出的变异都是由突变引起的,不考虑复杂的基因重组变异问题 —— 即每一种病毒都是由唯一的一种病毒突变而来,并且不存在循环变异的情况。输入格式:输入在第一行中给出一个正整数 N(≤10 4 ),即病毒种类的总数。于是我们将所有病毒从 0 到 N−1 进行编号。随后 N 行原创 2022-04-20 10:07:05 · 879 阅读 · 0 评论 -
实现树与二叉树的转换
算法介绍在代码注释上,时间有限,未测试^^#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<queue>using namespace std;const int N=1010;typedef int ElemType;typedef struct Forest{ int data; Forest *child[N];}原创 2021-12-22 21:08:59 · 1609 阅读 · 0 评论 -
P3388 【模板】割点(割顶)&(poj1144-Network)
P3388 【模板】割点(割顶)题目描述给出一个 nn 个点,mm 条边的无向图,求图的割点。输入格式第一行输入两个正整数 n,mn,m。下面 mm 行每行输入两个正整数 x,yx,y 表示 xx 到 yy 有一条边。输出格式第一行输出割点个数。第二行按照节点编号从小到大输出节点,用空格隔开。输入输出样例输入 #1复制6 71 21 31 42 53 54 55 6输出 #1复制1 5说明/提示对于全部数据,1\leq n \le 2\times 10^41原创 2021-04-29 11:19:40 · 100 阅读 · 0 评论 -
背包问题总结
学习于:背包九讲01背包P1048 [NOIP2005 普及组] 采药基础01背包,一个限制条件,每个物品只能用一次,求价值最大。#include<stdio.h>#include<algorithm>using namespace std;int w[300],v[300],dp[100000],n,m;int main(){ int i,j; scanf("%d %d",&m,&n); for(i=1;i<=n;i++) scan原创 2021-05-02 10:57:01 · 116 阅读 · 0 评论 -
【hdu2899】Strange fuction(模拟退火)
Strange fuctionSample Input2100200Sample Output-74.4291-178.8534求函数最小值,模拟退火算法求取。求导取0也可行。#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long long ll;int n,m;double y;原创 2021-05-01 18:42:15 · 100 阅读 · 0 评论 -
【hdoj4280】Island Transport(最大流ISPA)
Island TransportProblem Description In the vast waters far far away, there are many islands. People are living on the islands, and all the transport among the islands relies on the ships. You have a transportation company there. Some routes are opened原创 2021-04-30 16:45:53 · 115 阅读 · 1 评论 -
P3865 【模板】ST表(RMQ)
P3865 【模板】ST表输入输出样例输入8 89 3 1 7 5 6 0 81 61 52 72 61 84 83 71 8输出99779879ST(Sparse Table)表是解决RMQ(Range Minimum/Maximum Query,区间最值)问题的算法。算法首先对数据预处理,每个2^k区间的最值是其下两个 2 ^(k-1)区间的最值,最后查询时取两个小区间内的最值。#include<cstdio>#include<c原创 2021-04-28 19:21:15 · 105 阅读 · 0 评论 -
【PTA】L2-037 包装机 (25 分)(堆栈)
L2-037 包装机 (25 分)L2-037 包装机 (25 分)一种自动包装机的结构如图 1 所示。首先机器中有 N 条轨道,放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中。当 0 号按钮被按下时,机械手将抓取筐顶部的一件物品,放到流水线上。图 2 显示了顺序按下按钮 3、2、3、0、1、2、0 后包装机的状态。图1 自动包装机的结构图 2 顺序按下按钮 3、2、3、0、1、2、0 后包装机的状态一种特殊情况是,因为筐的容量是有限的,原创 2021-04-26 16:14:12 · 3545 阅读 · 3 评论 -
旅游胜地(二分+2-sat)
2695: 旅游胜地题目描述有一旅游胜地,可以看做是一个 n 个点、m 条边的连通无向图。每个点都有一个点权,编号为 i 的点的点权为 ai,表示这个点的景观值。开发商为了能获取收益,准备选择一些点建设商业区,但是会让这些点的景观值大打折扣。具体地说,如果选择编号为 i 的点建设商业区,则会让该点的景观值变为 bi,其中 bi≤ai。不过对于游客来讲,只要游览相邻的两个点时,景观值的差距不要太大就好。即确定好需要建设商业区的点后,记编号为 i 的点最终的点权为 wi,只要所有边 u,v 的 ∣wu−原创 2021-02-03 19:31:35 · 151 阅读 · 0 评论 -
【PTA】L2-035 完全二叉树的层序遍历
L2-035 完全二叉树的层序遍历 (25分)一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。给定一棵完全二叉树的后序遍历,请你给出这棵树的层序遍历结果。输入格式:输入在第一行中给出正整数 N(≤30),即树中结点个数。第二行给出后序遍历序列,为 N 个不超过 100 的正整数。同一行中所有数字都以空格分隔。输出格式:在一行中输出该树的层序遍历原创 2021-01-27 11:34:23 · 5856 阅读 · 5 评论 -
【HDOJ3062】Party(2-sat)
HDU3062 Party Problem Description有n对夫妻被邀请参加一个聚会,因为场地的问题,每对夫妻中只有1人可以列席。在2n 个人中,某些人之间有着很大的矛盾(当然夫妻之间是没有矛盾的),有矛盾的2个人是不会同时出现在聚会上的。有没有可能会有n 个人同时列席?Inputn: 表示有n对夫妻被邀请 (n<= 1000)m: 表示有m 对矛盾关系 ( m < (n - 1) * (n -1))在接下来的m行中,每行会有4个数字,分别是 A1,A2,C1,C2A1,原创 2020-12-18 21:18:57 · 185 阅读 · 1 评论 -
【poj3061】Subsequence(尺取法)
SubsequenceDescriptionA sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, and a positive integer S (S < 100 000 000) are given. Write a program to find the minimal length of the subsequence of consecutive原创 2020-11-20 18:54:17 · 167 阅读 · 0 评论 -
字符串匹配算法KMP(模板)
kmp算法是解决单模匹配问题的算法,难点在于求next[]数组求next[]数组:对于子串的所有前缀子串的最长公共前后缀的长度,就是next[]数组的值首先,要了解两个概念:“前缀"和"后缀”。 "前缀"指除了最后一个字符以外,一个字符串的全部头部组合;"后缀"指除了第一个字符以外,一个字符串的全部尾部组合。如下图所示:下面再以”ABCDABD”为例,进行介绍:”A”的前缀和后缀都为空集,共有元素的长度为0;”AB”的前缀为[A],后缀为[B],共有元素的长度为0;”ABC”的前缀为[A, AB转载 2020-11-10 12:41:33 · 388 阅读 · 0 评论 -
【牛客】D Router Mesh(强连通分量)
链接:https://ac.nowcoder.com/acm/contest/7501/D来源:牛客网题目描述In a Mesh networking system, there are n MI Routers, where m pairs of MI Routers are bidirectionally connected. In order to check the stability of the system, for each MI Router, we should determin原创 2020-10-26 11:49:55 · 260 阅读 · 0 评论 -
第十届蓝桥杯省赛C++A组
来源:第十届蓝桥杯省赛C++A组1241. 外卖店优先级“饱了么”外卖系统中维护着 N 家外卖店,编号 1∼N。每家外卖店都有一个优先级,初始时 (0 时刻) 优先级都为 0。每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减到 0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果优先级小于等于 3,则会被清除出优先缓存。给定 T 时刻以内的 M 条订单信息,请你计算 T 时刻时有多少外卖店在优先缓原创 2020-10-12 17:13:55 · 125 阅读 · 0 评论 -
试题 算法提高 vertex cover(dfs)
问题描述 给定一个N个点M条边的无向图G(点的编号从1至N),问是否存在一个不超过K个点的集合S,使得G中的每条边都至少有一个点在集合S中。输入格式 输入的第一行包含一个整数T,表示数据的组数。 接下来T组数据中:每组输入的第一行包含三个整数n, m,k,分别表示图的点数,边数,集合点数的最大值。接下来m行,每行2个正整数x,y,表示编号为 x 的节点与编号为 y 的节点间有一条边相连。输出格式 对于每组测试数据,若其存在解,则将解输出出来:第一行为一个整数t,表示所选点集的大小;第.原创 2020-10-09 15:52:27 · 183 阅读 · 0 评论 -
试题 历届试题 邮局(dfs)
问题描述 C村住着n户村民,由于交通闭塞,C村的村民只能通过信件与外界交流。为了方便村民们发信,C村打算在C村建设k个邮局,这样每户村民可以去离自己家最近的邮局发信。现在给出了m个备选的邮局,请从中选出k个来,使得村民到自己家最近的邮局的距离和最小。其中两点之间的距离定义为两点之间的直线距离。输入格式 输入的第一行包含三个整数n, m, k,分别表示村民的户数、备选的邮局数和要建的邮局数。 接下来n行,每行两个整数x, y,依次表示每户村民家的坐标。 接下来m行,每行包含两个整数x, y原创 2020-10-08 17:56:25 · 174 阅读 · 0 评论 -
试题 历届试题 拉马车(模拟,string)
问题描述 小的时候,你玩过纸牌游戏吗? 有一种叫做“拉马车”的游戏,规则很简单,却很吸引小朋友。其规则简述如下: 假设参加游戏的小朋友是A和B,游戏开始的时候,他们得到的随机的纸牌序列如下: A方:[K, 8, X, K, A, 2, A, 9, 5, A] B方:[2, 7, K, 5, J, 5, Q, 6, K, 4]其中的X表示“10”,我们忽略了纸牌的花色。从A方开始,A、B双方轮流出牌。当轮到某一方出牌时,他从自己的纸牌队列的头部拿走一张,放到桌上,并且压在最上面一张原创 2020-10-01 11:58:49 · 114 阅读 · 0 评论 -
L3-011 直捣黄龙 (30分)&L3-007 天梯地图 (30分)(最短路,二三测试点)
L3-011 直捣黄龙 (30分)本题是一部战争大片 —— 你需要从己方大本营出发,一路攻城略地杀到敌方大本营。首先时间就是生命,所以你必须选择合适的路径,以最快的速度占领敌方大本营。当这样的路径不唯一时,要求选择可以沿途解放最多城镇的路径。若这样的路径也不唯一,则选择可以有效杀伤最多敌军的路径。输入格式:输入第一行给出 2 个正整数 N(2 ≤ N ≤ 200,城镇总数)和 K(城镇间道路条数),以及己方大本营和敌方大本营的代号。随后 N-1 行,每行给出除了己方大本营外的一个城镇的代号和驻守的敌军原创 2020-06-26 16:20:26 · 512 阅读 · 0 评论 -
P1886 滑动窗口 /【模板】单调队列
【洛谷P1886】滑动窗口【单调队列】题目描述有一个长为 nn 的序列 aa,以及一个大小为 kk 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。例如:The array is [1,3,-1,-3,5,3,6,7][1,3,−1,−3,5,3,6,7], and k = 3k=3。输入格式输入一共有两行,第一行有两个正整数 n,kn,k...原创 2020-05-08 09:47:57 · 1207 阅读 · 0 评论 -
H 纸牌游戏(dfs)
链接:https://ac.nowcoder.com/acm/contest/5278/H来源:牛客网题目描述Cubercsl 和 Oneday 在玩一个纸牌游戏。两个人手中都有 n 张数字牌,每张牌面上都包含 0 \sim 90∼9 其中一个阿拉伯数字。游戏规则是需要将手中的牌选出恰好 k 张,组成一个能被 3 整除的非负整数(不能含有多余前导零),组成的数大的获胜。Cubercsl ...原创 2020-05-02 17:14:29 · 1058 阅读 · 0 评论 -
试题 历届试题 k倍区间
试题 历届试题 k倍区间资源限制时间限制:2.0s 内存限制:256.0MB问题描述 给定一个长度为N的数列,A1, A2, … AN,如果其中一段连续的子序列Ai, Ai+1, … Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。你能求出数列中总共有多少个K倍区间吗?输入格式 第一行包含两个整数N和K。(1 <= N, K <=...原创 2020-03-10 10:06:41 · 197 阅读 · 0 评论 -
试题 历届试题 大臣的旅费(图中最长距离)
问题描述很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了J最常...原创 2020-03-08 16:12:45 · 107 阅读 · 0 评论 -
P1967 货车运输(最短路+lca)
P1967 货车运输题目描述A 国有 nn 座城市,编号从 11 到 nn,城市之间有 mm 条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有 qq 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。输入格式第一行有两个用一个空格隔开的整数 n,mn,m,表示 AA 国有 nn 座城市和 mm 条道路。接下来 mm 行每行三个整数 x, y,...原创 2020-03-06 11:10:44 · 241 阅读 · 0 评论 -
P3379 【模板】最近公共祖先(LCA)
P3379 【模板】最近公共祖先(LCA)题目描述如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。输入格式第一行包含三个正整数 N,M,SN,M,S,分别表示树的结点个数、询问的个数和树根结点的序号。接下来 N-1N−1 行每行包含两个正整数 x, yx,y,表示 xx 结点和 yy 结点之间有一条直接连接的边(数据保证可以构成树)。接下来 MM 行每行包含两个正整数 a...原创 2020-03-04 11:20:52 · 464 阅读 · 0 评论 -
P1439 【模板】最长公共子序列
P1439 【模板】最长公共子序列题目描述给出1-n的两个排列P1和P2,求它们的最长公共子序列。输入格式第一行是一个数n,接下来两行,每行为n个数,为自然数1-n的一个排列。输出格式一个数,即最长公共子序列的长度输入输出样例输入 #1复制5 3 2 1 4 51 2 3 4 5输出 #1复制3说明/提示【数据规模】对于50%的数据,n≤1000对于100%...原创 2020-02-23 11:07:53 · 411 阅读 · 0 评论 -
P1281 书的复制(二分)
题目描述现在要把 mm 本有顺序的书分给 kk 个人复制(抄写),每一个人的抄写速度都一样,一本书不允许给两个(或以上)的人抄写,分给每一个人的书,必须是连续的,比如不能把第一、第三、第四本书给同一个人抄写。现在请你设计一种方案,使得复制时间最短。复制时间为抄写页数最多的人用去的时间。输入格式第一行两个整数 m,km,k。第二行 mm 个整数,第 ii 个整数表示第 ii 本书的页数。...原创 2020-02-14 15:47:05 · 416 阅读 · 0 评论 -
堆优化的dijskra 最短路模板
P4779 【模板】单源最短路径(标准版)贴个模板吧,非负权图最优化的dijskra比spfa快。#include<cstdio> #include<queue>#include<cstring>using namespace std;const int maxn=500005;int inf=0x3f3f3f3f;int n,m,head[ma...原创 2020-02-11 16:20:37 · 440 阅读 · 0 评论 -
P1197 [JSOI2008]星球大战&P3144关闭农场(并查集逆序求连通块)
题目描述很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治着整个星系。某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球。这些星球通过特殊的以太隧道互相直接或间接地连接。但好景不长,很快帝国又重新造出了他的超级武器。凭借这超级武器的力量,帝国开始有计划地摧毁反抗军占领的星球。由于星球的不断被摧毁,两个星球之间的通讯通道也开始不可靠起来。现在...原创 2020-02-11 11:11:37 · 196 阅读 · 0 评论 -
P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm(有环图的搜索)
P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm题目描述Every year in Wisconsin the cows celebrate the USA autumn holiday of Halloween by dressing up in costumes and collecting candy that Farmer John ...原创 2020-02-09 11:54:00 · 180 阅读 · 0 评论 -
P1341 无序字母对&7-32 哥尼斯堡的“七桥问题” (25分)(欧拉回路)
P1341 无序字母对题目描述给定n个各不相同的无序字母对(区分大小写,无序即字母对中的两个字母可以位置颠倒)。请构造一个有n+1个字母的字符串使得每个字母对都在这个字符串中出现。输入格式第一行输入一个正整数n。以下n行每行两个字母,表示这两个字母需要相邻。输出格式输出满足要求的字符串。如果没有满足要求的字符串,请输出“No Solution”。如果有多种方案,请输出前面的字母的...原创 2020-02-04 10:35:06 · 423 阅读 · 0 评论 -
P6037 Ryoku 的探索&P2661 信息传递(拓扑排序求环)
P6033 Ryoku 的探索题目描述Ryoku 所处的世界可以抽象成一个有 nn 个点, nn 条边的带权无向连通图 GG。每条边有美观度和长度。Ryoku 会使用这样一个策略探索世界:在每个点寻找一个端点她未走过的边中美观度最高的走,如果没有边走,就沿着她前往这个点的边返回,类似于图的深度优先遍历。探索的一个方案的长度是这个方案所经过的所有边长度的和(返回时经过的长度不用计算)。她想...原创 2020-02-01 11:44:16 · 280 阅读 · 0 评论 -
二分查找细节问题
6-10 二分查找 (20分)如果一个递增的有序数量没有重复的数,标准的二分写法是这样的:Position BinarySearch( List L, ElementType X ){ int left=1, right=L->Last; while(left<=right){ int mid=(left+right)/2; if(X>L->Data[mi...原创 2020-01-27 13:35:40 · 191 阅读 · 2 评论 -
P1020 导弹拦截(最长不上升子序列和最长上升子序列LIS)
P1020 导弹拦截题目描述某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是\le 50000≤50000的正整数),计算这套系统...原创 2020-01-27 10:38:19 · 228 阅读 · 0 评论 -
P2341 【模板】强连通分量 / [HAOI2006]受欢迎的牛
P2341 【模板】强连通分量 / [HAOI2006]受欢迎的牛题目描述每头奶牛都梦想成为牛棚里的明星。被所有奶牛喜欢的奶牛就是一头明星奶牛。所有奶牛都是自恋狂,每头奶牛总是喜欢自己的。奶牛之间的“喜欢”是可以传递的——如果 AA 喜欢 BB,BB 喜欢 CC,那么 AA 也喜欢 CC。牛栏里共有 NN 头奶牛,给定一些奶牛之间的爱慕关系,请你算出有多少头奶牛可以当明星。输入格式第一行:...原创 2020-01-23 14:36:47 · 149 阅读 · 0 评论 -
P2742 【模板】二维凸包 / [USACO5.1]圈奶牛Fencing the Cows
P2742 【模板】二维凸包 / [USACO5.1]圈奶牛Fencing the Cows](https://www.luogu.com.cn/problem/P2742)题目描述农夫约翰想要建造一个围栏用来围住他的奶牛,可是他资金匮乏。他建造的围栏必须包括他的奶牛喜欢吃草的所有地点。对于给出的这些地点的坐标,计算最短的能够围住这些点的围栏的长度。输入格式输入数据的第一行包括一个整数 N...原创 2020-01-21 15:51:26 · 189 阅读 · 0 评论 -
数位dp
不要62学习于数位dp总结 之 从入门到模板里面的介绍中dfs函数有一个pre参数,可以省略。#include<stdio.h>#include<string.h>int a[20],dp[20][2];int dfs(int pos,int sta,int flag){//分别存的第几位,上一位是否是6,是否达到上界 if(pos==-1) return ...原创 2019-12-28 11:50:15 · 80 阅读 · 0 评论 -
The Accomodation of Students(判断二分图+二分图最大匹配)
P3386 【模板】二分图匹配二分图详解这边博客比较好,看这个学习的#include<stdio.h>#include<string.h>const int inf=0x3f3f3f3f;int a[1005][1005],cx[1005],cy[1005],m,n,v[1005];int match(int x){ int i; for(i=1;i<...原创 2019-11-24 21:48:33 · 108 阅读 · 0 评论 -
P1004 方格取数 && P1006 传纸条(多维dp)
P1004 方格取数这两题基本上一样了,就是放歌取数要加上起始位置,这个算法不算(1,1)的起始位置,右下角的位置的量到是算上了。这个算法比较好理解,算是基础题了吧。最近一个多星期一直在学dp,感觉学了好多,不知道吸收了多少,等这个阶段的题刷完了要总结一下。九月和十月差不多做了一百题了吧。#include <iostream>#include<cstring>#i...原创 2019-11-04 10:57:30 · 125 阅读 · 0 评论 -
图论算法——DFS求有向图或无向图两点间所有路径
DFS大法好!DFS作为搜索算法,最常用于图,对图的遍历,探寻路径,甚至是求一些情况下的最短路。我在这里就介绍一下dfs求两点的的所有路径,这个算法最开始在数据结构大作业里面用到了,当时费了一番劲写出来后,就想oj题里面这么变态的算法肯定不会出,后来还真的见过了。。。原创 2019-06-12 09:28:24 · 25166 阅读 · 19 评论