摘要:题意:给你一个n*m的地图,现在有一束激光从左上角往右边射出,每遇到‘#’,你可以选择光线往四个方向射出,或者什么都不做,问最少需要多少个‘#’往四个方向射出才能使关系在n行往右边射出。 思路:将每一行,每一列看做二分图中的一个点,a[i,j]='#'就将第i行和第j列之间连一条边,最短路DFS即可
阅读全文
摘要:题意:给一个无环的图,问用不超过T的时间从1到n最多可以经过多少个点。要求输出一条路径。 思路:因为无环,可以用DP做。不过因为时间最短的原因要拓扑排序后再DP,目测由底向上的更新也是可以的。
阅读全文
摘要:题意:a[i]表示从第i个车站可以一张票到第[i+1,a[i]]这些车站;p[i][j]表示从第i个车站到第j个车站的最少的票数,现在要求∑dp[i][j](1tree[p].s then tree[p]:=tree[ptree[p].s then tree[p]:=tree[p>1; 27 build(l,mid,p>1; 40 t:=0; 41 if (x>=l)and(yt then ...
阅读全文
摘要:题意:给一个N个点M条边的连通无向图,满足每条边最多属于一个环,有Q组询问,每次询问两点之间的最短路径。 对于80%的数据环的个数<=1 对于100%的数据N<=10000,Q<=10000 思路:bzoj原题 只会80,正解听说是仙人掌 对于80每个询问的最优解必定是一棵树或一棵树+一条边,因为环
阅读全文
摘要:题意:给定一张N*M的地图,每一格都是一个房间,房间之间有门。每个房间可能有四个门,例如>代表右边只有一个门在右边即只能向右走,L代表左边没有门只能除了左其他都可以走等等。现在给出起点和终点,每次你可以把全部房间旋转90度或者移动到相邻的房间,但前提是两个房间之间都有有门,现在要你求起点出发到终点的
阅读全文
摘要:题意:给出一棵树上的2*k个节点,给他们配对,使得他们之间的距离和最大。 思路:一条边的两侧如果有一侧没有给定的节点就不会被经过…… 如果有1个节点就会被经过1次…… 如果两侧分别有x,y个给定节点就会被经过min(x,y)次 因为要使总路程最大就是让每一条路被走过最多的次数 肯定是两侧各取一个 剩
阅读全文
摘要:题意: 有N个城市,M条无向边,其中有K个城市是仓库 现在要在非仓库的城市中选择一家开面包店,使得其最少与一个仓库联通,且到所有仓库距离的最小值最小 (1 ≤ n, m ≤ 10^5, 0 ≤ k ≤ n) 分析: 数据范围决定了只能使用O(N)或O(n log n)的解法 思考后可以发现面包店一定
阅读全文
摘要:没什么可以说的 做dijk+heap模板吧 以后考试时候看情况选择SFPA和DIJKSTRA 1 const oo=110000000000; 2 var vet,next,len,w:array[1..2100000]of longint; 3 dis:array[1..1100000]of in
阅读全文
摘要:题意:给你一张有向图,叫你给出四个点的序列a,b,c,d,使得这四个点依次间的最短路之和最大。(4 ≤ n ≤ 3000, 3 ≤ m ≤ 5000) 思路:O(n4)可用来对拍 我们需要O(n2)级别的算法 若枚举c,d,预处理出x到b比较远的3个x,d到y比较远的3个y,时间复杂度O(9n2)
阅读全文