摘要:
题意:给定一个有向图,每条路有5个整数修饰,u, v, a, b, t,表示起点为u,终点为v,打开时间a,关闭时间为b,通过时间为t,打开关闭是交替进行的, 问你从s到t最短时间是多少。 析:使用dijkstra算法,从每个结点出发,求最短路,并维护时间的最小值,这个可以用优先队列,然后考虑能不能 阅读全文
摘要:
题意:给定一个abs(x) <= a, abs(y) <= b,除了原点之外的整点各有一棵树,可以相互阻挡,求从原点可以看到多少棵树。 析:由于a < b,所以我们可以一列一列的统计,第 x 列可以看到的树的个数就是 0 < y <= b中gcd(x, y) = 1的y的个数。 然后就可以分别统计, 阅读全文
摘要:
题意:给定一个有向图,让你找出若干个图,使得每个点恰好属于一个圈,并且总的权和最小。 析:每个点都有唯一的一个圈,也就是说每一点都有唯一的后继,那么我们就可以转换成求一个图的最小权的最佳完全匹配,可以用最小费用流来求, 先把每个结点拆成两个点,假设是x,y,然后建立一个源点,向每个点的x连一条容量为 阅读全文
摘要:
题意:给定一个图,求1-n的两条不相交的路线,并且权值和最小。 析:最小费用流,把每个结点都拆成两个点,中间连一条容量为1的边,然后一个作为入点,另一个是出点。最后跑两次最小费用流就行了。 代码如下: 阅读全文
摘要:
题意:给定一个矩阵的每行每列的前缀和,矩阵的元素是1-20,求这个矩阵。 析:一个网络流题,首先先把每个点的数减1,那么元素就成了0-19,这样就是一个普通的网络流了,建立一个源点和汇点,源点向每行连一条边, 汇点向每列连一条边,每个行向每个列连一条容量为19的边,其他的边都是相应的容量。最后跑一次 阅读全文
摘要:
题意:给定 n 种插座,m种设备,和k个转换器,问你最少有几台设备不能匹配。 析:一个很裸的网络流,直接上模板就行,建立一个源点s和汇点t,源点和每个设备连一条边,每个插座和汇点连一条边,然后再连转换器, 最后跑一次最大流即可。 代码如下: 阅读全文
摘要:
题意:首先给出n和m,表示有n个bug和m个补丁。一开始存在n个bug,用1表示一个bug存在0表示不存在,所以一开始就是n个1,我们的目的是要消除所有的bug, 所以目标状态就是n个0。对于每个补丁,会给出使用这个补丁的时间,另外会给出两个长度为n的字符串,第一个字符串表示这个补丁适用于什么情况下 阅读全文