随笔分类 - ACM-思维
摘要:题意: 有两种出行方式,一种是经济舱,一种是商务舱,商务舱比经济舱更加便捷。 一个人出行,想尽快达到目的地,但是他的钱不够,因此只能坐经济舱,但是幸运的是他有一张商务舱的票,意味着他可以选择坐一次商务舱,或者不坐(如果这样更省时间)。 给出地点数,起点,终点以及若干经济舱的线路和若干商务舱的线路,要
阅读全文
摘要:题意: 一群动物想从动物园逃离,从一个图的左上角出发,只有到达右下角才能彻底逃离。 动物园的管理者为了防止他们逃跑,安排了若干人在路上防守。 现在问最少需要花多少人能够封锁动物逃跑的路线。 思路: 简单画一画知道,就是找一个边的集合把整个图分成两个部分,且要求这些边的权值最小,这是著名的最小割问题(
阅读全文
摘要:题意: 一开始题读错了,囧,看了题解才发现,汗! 有一对夫妻要结婚,他们坐在一条长凳上,这条长方形长凳有左右两端(自行脑补),来了若干对夫妻参加他们的婚礼。 规定一对夫妻中的两个人不能坐在同一端。 新娘因为头饰太复杂所以看不到跟她坐在同一侧的人。 同时这些夫妻中有某些人存在不纯洁关系,新娘不希望同时
阅读全文
摘要:题意: 有一些部长需要对某些账单进行投票。 一个部长最多对4个账单进行投票,且每票对一个账单通过,要么否决。 问是否存在一个方案使得所有部长有超过半数的投票被通过,如果有,那么说明哪些账单的决定是明确的,哪些是不明确的;否则说明不可能。 思路: 2-SAT。 一开始觉得这是一个k-SAT问题,但是因
阅读全文
摘要:题意: 一座飞机场要降落飞机,每架飞机有两种降落方式:早降落和晚降落。 现在要安排飞机的降落使得两个飞机降落时间的最小值最大。 输出这个最小值。 思路: 最小值最大化,可以想到答案需要二分。 然后就是如何判断一个时间是否满足条件。一个飞机要么早降落,要么晚降落,所以就是一个为真,另一个一定为假,这就
阅读全文
摘要:题意: 现在要安排一些宇航员去星球勘探。有3个星球,分别是J第一大的月亮A,J第二大的月亮B,S第一大的月亮C。 规定年轻的宇航员不能去A,年长的宇航员不能去B,C任何人都可以去。 现在有一些宇航员之间有矛盾,他们不能去相同的星球。 现在问可否安排出这样的方案满足条件,如果有,那么就输出每个宇航员去
阅读全文
摘要:题意: 一个n * n的棋盘上放着n个棋子,现在要求把这n个棋子用最少的步数移到同一条直线上,即同一列同一行或者同一对角线(两条)。输出最少的步数(只能往四个方向移动,即正东,正西,正南,正北)。 思路: 每个棋子唯一对应一个格子,每个棋子不能在同一个格子,那么就相当于一个二分图(强行二分图)。 因
阅读全文
摘要:题意: 一个平面上有n个黑色的点,n个白色的点,要求黑色的点与白色点之间一一配对,且线段之间不相交。 思路: 线段不相交并不好处理,想了很久想不出,所以看了蓝书的讲解。 一个很明显的结论是,不相交的线段一定比相交的线段短,如图:一个较为直观的例子。 由于点之间一一对应,所以肯定用二分图匹配,然后要使
阅读全文
摘要:题意: 给出一个n * n的矩阵,要求给每一行和每一列安排一个数字,使得对于每个数字a[i][j],这一行安排的数字row[i]和这一列安排的数字col[j]满足row[i] + col[j] >= a[i][j]。要求使得每一行安排的数字和每一列安排的数字之和最小。输出每一行和每一列安排的数字,再
阅读全文
摘要:题意: 给出一个r * c的矩阵,某些格子中有坏蛋,一次操作可以灭掉一行或者一列上的全部坏蛋,问最少多少次操作可以灭掉所有的坏蛋并且输出每次的操作。 思路: 把每一个点拆成行与列两个点,然后两个点之间连边,就形成了一个二分图。用最少的操作去消灭所有的坏蛋,就是用最少的点去覆盖所有的边,转化成了二分图
阅读全文
摘要:题意: 给出n个点,以及每个点到其他点的有向距离,要求设计线路使得每一个点都在一个环中,如果设计的线路拥有最小值,那么这个线路就是可选的。输出这个最小值或者说明最小线路不存在。 思路: 在DAG的最小路径覆盖中,找到的最大匹配数实际是非终点的点的最大数量(每一个匹配对应一个起点),点数减去这个数量就
阅读全文
摘要:题意: 邦德在逃命!他在一个有N个城市,由M条边连接的道路网中。一条路的危险度被定义为这条路上危险度最大的边的危险度。 现在给出若干个询问,s,t,问从s到t的最小的危险度是多少。 思路: 首先可以证明这条路是固定的,就是最小生成树,证明略。 之后就是计算生成树上两点间的最长边,用prim算法预处理
阅读全文
摘要:题意: 给出一个图,边是有向的,现在给出一些边的变化的信息(权值大于原本的),问经过这些变换后,MST总权值的期望,假设每次变换的概率是相等的。 思路: 每次变换的概率相等,那么就是求算术平均。 首先求出最小生成树,若变换的边不在最小生成树上,那么就不用管;如果在,那么就需要求变换之后的MST的总权
阅读全文
摘要:题意: 一个KTO被定义为一个特殊的连通块,这个连通块满足一个要求,这个连通块中的最短的边大于 与这个连通相连的不属于这个连通块的边中的最大值。 给出一个图,统计KTO里面的点有多少个。(一个点可以属于多个KTO) 如a中有3个KTO,b中有6个KTO。 思路: 因为题目中给出的n最大为5000,那
阅读全文
摘要:题意: 给出一个无向图,求一个生成树使得这个生成树的最大边与最小边之差最小,输出这个最小的差值。n的最大值为350。 思路: 这题不看题解想破头也不知道怎么写Orz。 暴力的做法是可以从大到小枚举边作为最小边的权值,求MST,但是复杂度达到了O(n^4),很显然会T。 考虑在kruskal算法加边的
阅读全文
摘要:题意: 给出一个数列,现在有一种操作,可以任何一个a[i],用a[i] – a[i+1]和a[i]+a[i+1]替代a[i]和a[i+1]。 问现在需要最少多少次操作,使得整个数列的gcd大于1。 思路: 经过思考后发现,除非所有的数的gcd已经大于1,那么就必须把全部数字变为偶数。 变数字的时候,
阅读全文
摘要:题意: 有很多家银行,如果一个上线的银行和另一个上线的银行直接相连,那么称这种关系叫相邻; 如果一个上线的银行和另一个上线的银行通过第三个上线银行间接相连,称这种情况为半相邻。 每个银行一开始是上线的并且有一个初始的防卫力量(可能为负数),一个银行被抢劫之后就会下线并且再也不会上线,与它相邻和半相邻
阅读全文
摘要:题意: 给出一个数列,和一种操作,以及两个数x和k。 这个操作有两个步骤: 首先把这个数列按照升序排序,然后把所有奇数位上的数字与x异或。 问执行k次操作之后,这个数列的最大值和最小值是多少。 思路: 由于每个数字异或两次之后会变回本身,所以猜测这个数列有可能会循环,所以就可以暴力计算周期,对于每一
阅读全文
摘要:题意: 中文题意,略。。。 思路: 第一问,求最长公子序列,模板题。。。 第二问,求最长公共子序列的个数,这个就比较有意思了。 设len[i][j]表示表示第一个串到i位置,第二个串到j位置时的长度。 设lcs[i][j]表示第一个串到i位置,第二个串到j位置时,lcs的个数。 当a[i] == b
阅读全文
摘要:题意: 约翰让一些奶牛做家务,每只奶牛都有固定工作的时间段。 现在安排最少的奶牛,使得每一个单位时间内至少有一只奶牛在工作,问是否可行。 思路: 经典的贪心,区间覆盖问题。 把起始时刻0作为当前时刻开始寻找,找到区间左端点小于等于当前时刻+1且区间右端点最大的一个区间,直到下一个区间的左端点大于当前
阅读全文

浙公网安备 33010602011771号