思路(来自codeforces题解): 从1×2 的躺椅联想到黑白染色, 若将躺椅的移动看成空格的移动, 不难发现每次都是黑格移到黑格, 白格移到白格, 最后我们放置躺椅的位置也是一黑一白的。 我们可以证明, 在最佳情况下, 每个躺椅的移动不超过一次, 我有一个感性的理解, 每次移动要么从黑格移到黑格, 要么从白格移...
using namespace std; const int maxn = 1000005; vector<int>e[maxn]; int n,m; int vis[maxn]; int d[maxn]; void bfs() { queue<int>q; vis[n]=1; d[n]=0; q.push(n); while (!q.empty()) { int u = q.front(); q.pop(); for (int i = 0;i<e[u].size();i++)...
另外之前提过专题的题目主要使用kuangbin系列,现在改变主意了,专题题目全部使用CodeForces上的题目,原因主要是POJ等国内的OJ系统不能看源代码,而且题目质量稍微欠缺一些,然后没有区分度。 CodeForces能够看到高手写的代码,题目质量相对好些,然后每个题目的难易都用a/b/c/d标明了。 OK,开始看题。 601A. The Two Rout...
Codeforces 1163F 最短路 + 线段树 (删边最短路) 题意:给你一张无向图,有若干次操作,每次操作会修改一条边的边权,每次修改后输出1到n的最短路。修改相互独立。 思路:我们先以起点和终点为根,找出最短路径树,现在有两种情况: 1:修改的边不是1到n的最短路上的边,那么可能出现的情况就是这条边的权值变得...
如果两个点经过非树边呢?即它们一定要经过该边的两个端点,可以直接用这两个点到 u,v 的最短路更新答案。 所以枚举每条非树边的两个端点,求一遍这两个点到所有点的最短路。非树边最多21条,所以要求一遍最短路的点最多42个。 另外对于一条边的两个点只求一个就好了。因为要用这条非树边的话它们两个都要...
Codeforces 1076D——最短路算法 #include 题目 给你一个有n个顶点、m条边的无向带权图。需要擦除一些边使得剩余的边数不超过k,如果一个点在原始图到顶点1的最短距离为d,在删边后的图中到顶点的最短距离仍是d,则称这种点是 good。问如何删边,使得 good点最多。
分层图最短路 Codeforces Round 703 (Div. 2) E. Paired Payment 姐妹概念好绝 5 0 分层图最短路 洛谷 P4568 [JLOI2011] 飞行路线 姐妹概念好绝 2 0 分层图最短路 力扣 864. 获取所有钥匙的最短路径 姐妹概念好绝 2 0 黑马css 学习3 姐妹概念好绝 4 0 区间dp+博弈论 Educational Codeforces Rou...
Codeforces Round 967 (Div. 2) D. Longest Max Min Subsequence 线段树+双指针 姐妹概念好绝 95 0 换根dp C - Centroids 额滴神啊这题差点没给我难死,人已崩溃 姐妹概念好绝 7 0 倍增优化dp 洛谷P1613 跑路 姐妹概念好绝 5 0 线段树优化dp P2605 [ZJOI2010] 基站选址 姐妹概念好绝 5 0 状压...
Submit Status Practice CodeForces 25C Description There are n cities numbered from 1 to n in Berland. Some of them are connected by two-way roads. Each road has its own length — an integer number from 1 to 1000. It is known that from each city it is possible to get to any other ci...
题目链接 http://codeforces.com/gym/101630/attachments 题解 zyb学长的题。 先枚举第\(k\)大的边权,设其边权为\(x\),然后把每条边边权减掉\(x\)与\(0\)取\(\max\), 跑最短路之后加上\(x\times k\)更新答案。 注意从\(0\)开始枚举(就相当于裸跑最短路)。 代码 #include