随笔分类 - 2019ACM暑期集训
摘要:题意:由于在过m分钟就要下雨,在花园玩的人(都没有带伞),需要在花园找到一把伞来防止淋湿。同时每个人只能最多拥有一把伞,且该伞不能和其他人共用。已知伞和人的坐标位置,以及人的行走速度问能否使每个人都匹配到一把伞输入:有T个测试样例,每个测试样例包含要下雨的时间t,n个人以及其坐标速度信息,m把伞以及
阅读全文
摘要:题意:给你一个0,1的矩阵然后你现在可以多次交换任意的两行或者两列使得该矩阵的对角线全为1.如果不能则输出-1思路:我们可以把行列交换看做一种匹配,要是得对角线的所有为1就要把所有的1交换到G[i][i]的位置,比如某个1在(0,1){初始行号为0}那么我们就可以把它交换到(0,0)或者(1,1),
阅读全文
摘要:A. 题意: 模拟操作,有九间房子(0~9)L代表某人入住从左往右起第一个为空的房间,R表示从右往左起第一个空的房价。数字i代表第i个房间的人离开房间。最后输出房间的入住状态,有人则输出为1,没人则输出0思路:一开始没有读懂题意,以为是模拟双端队列那种.其实就是遍历到第一个为0的地方改为1即可 B.
阅读全文
摘要:(补题ing...按难易程度写补题解吧...) G - A - B (3/10) G:Gemstones 题解:鄙人 G题题解 A. All-one Matrices 题解:A题题解 B. Beauty Values 题解链接
阅读全文
摘要:题意:给出P门课程,N个学生。每一门课程可能有多个学生感兴趣然后我们需要匹配,使得每一门课程都只包含一名对其感兴趣的学生问:能否匹配成立思路:这个就是典型的二分图匹配问题。常用匈牙利算法 完整代码:(一开始写成了无向图....)写成有向图是因为学生是可以剩余的
阅读全文
摘要:思路:给你一个棋盘,给出障碍物。你需要在棋盘上摆放尽可能多的车(象棋)然后求出棋盘中有多少位置 如果不摆放会使最大摆放数目减小思路:我们从 HDU-1045 Fire Net 中知道可以对棋盘进行处理成二分图的形式然后求出其最大匹配,同时我们也知道,棋子的位置(i,j)被处理成了二分图中的边所以要求
阅读全文
摘要:题意:给出一个不会超过4x4的mapmap中有墙,以及空白处。然后你要在空白处放置尽可能多的炮台炮台对向四周发射子弹,即(炮台不能放在同一行或者列除非有墙阻挡)思路:首先想到了dfs枚举(就像八皇后一样回溯法),我们尽可能多的在一行一行的放置.关于放置搜索的问题,我们判断是否合法关于二分图匹配(完全
阅读全文
摘要:题意:给出编号范围为N的人,然后再给出编号a b 之间有认识的关系。给出m组这样的关系,然后让你分出两组使得每组中每个人互相都不认识(认识关系没有间接性),如果能分组的话,就将两个认识人放到一个房间中,求最多需要的房间数思路:以前做过并查集关于分组的题所以首先想用并查集来试一下(并查集分组是开两倍的
阅读全文
摘要:题意:给出一个无相图,然后q次新增加边,问在添加边的过程中桥的数目当且仅当无向边(u,v)为树枝的时候,需要满足dfn(u)<low(v),也就是v向上翻不到u及其以上的点,那么u-v之间一定能够有1条或者多条边不能删去,因为他们之间有一部分无环,是桥思路:首先我们知道在给定一张图之后,不断添加边,
阅读全文
摘要:题意:给你一个数轴,从0开始出发,只能通过传送站转移,然后问能否通过给定的传送站转移到终点传送站给出坐标,以及其能够移动的范围思路:我们可以想到dfs来搜索路径。由于每个传送站可以进行转移,即记录站点位置(转移时只能这样),然后再用vis记录是否访问(避免重复),到达终点标记为成功记录上由于范围较小
阅读全文
摘要:题意:给出两个序列a,b;a序列一开始为0,b序列为输入中给出的固定序列有n次修改,l r k ,即在a的(l,r)区间内的元素全部加1。在m次查询,l r 即询问在区间以内 的值思路:区间修改已经区间维护就会想到线段树。但是怎样维护这棵树?由于b是固定的序列,且ai/bi还要向下取整我们区间要修改
阅读全文
摘要:完整代码:(如果数组大小没有开够给出的可能是WA的结果)
阅读全文
摘要:题意:给出长为N的序列,然后Alice与Bob每次要轮流从中取两个数,如果|x-y|的差值已经存在与序列中以为着此次的操作无效,反之则有效。并且把得到的差值加入到序列中思路:要使得最后一个人操作无效即,该序列已经成为一个1到N的等差数列所以我们就要计算最后成为这种序列的次数。而要计算这个序列的次数,
阅读全文
摘要:题意:给出一张图求它的割点个数: 割点: 定义:无向图中,如果有一个顶点,删除这个顶点以及这个顶点相关联的边以后,图的连通分量增多,就称这个点集为割点。 判断一个顶点是不是割点除了从定义,还可以从DFS(深度优先遍历)的角度出发。我们先通过DFS定义两个概念。假设DFS中我们从顶点U访问到了顶点V(
阅读全文
摘要:题意:给出你N个炸弹坐标,以及每个的爆炸范围,引爆炸弹所需的花费。如果某个炸弹在另一个的爆炸范围以内,则可以被另一个炸弹引爆(间接引爆)。问引爆所有炸弹所需的最小花费 思路:把炸弹看作一个点,间接引爆就相当于一条有向边。最终所形成的图中,我们去找强连通分量。每个分量中花费最小的cost 以及 入度为
阅读全文
摘要:题意:给出一个无向图,然后你要输升序输出该图中 所有的桥。 思路:使用tarjan对桥的求法性质: 当且仅当无向边(u,v)为树枝的时候,需要满足dfn(u)<low(v),也就是v向上翻不到u及其以上的点,那么u-v之间一定能够有1条或者多条边不能删去,因为他们之间有一部分无环,是桥。 如果v能上
阅读全文
摘要:题意:给出一个有向图输出1:至少要向多少台电脑放文件能使所有电脑都能得到文件输出2:至少加多少条边,可以使得在任意地方放文件,文件都能到达任意一台电脑思路:从题意上来看就是 寻找有向图中的强连通分量(极大强连通子图)输出2即是:在DAG上要加几条边,才能使得DAG变成强连通图所以使用tarjan算法
阅读全文
摘要:B. Zero Array 题意:给出一个长为N的序列然后,每次能对序列中任意两个不相同的值同时减1,判断最后能否将全部减为0 思路:一开始毫无疑问可以想到,要把序列减为0,总值必须为偶数。其次,就是要避免最后减完后还余留某个值(自身不能够相减),即将所给序列先sort一边然后判断最大的是否大于总值
阅读全文
摘要:给你n个点的哨点坐标,然后对应有M个卫星,问怎样连接使通信花费最小,给出最小花费的最长边将拥有卫星的两个哨所可以直接连接,不需要花费思路:由于要求出最小花费的最长边,所以我们去掉M-1条最大边,即输出第 N-M条边即为所求要找到连接的第N-M边,我们就利用kruskal算法来求解 完整代码:(关于精
阅读全文
摘要:题意:给出N个点,以及对应连接的费用邻接矩阵,每两个点之间连接还要额外花费 该节点的额外消费额 。问怎样连接 使得花费最小思路:事实上我们在建立路径的时候就把 结点额外花费的值加进去就行了 krusal 题解: prim 题解:
阅读全文

浙公网安备 33010602011771号