
图论
nof_uck
人一我十,人百我万
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
牛客练习赛67 (A、B、C、D、E)
思路 首先暴力建图肯定不行的,直接被卡死。 那么想如何优化。 首先我们可以按位操作,把32位看成点,然后对每个点拆点。 即:对于第 iii 位(二进制) 有两个点,i1i_1i1(入点)和 i2i_2i2(出点) ,i1i_1i1 向 i2i_2i2 连一个边,边权为 2i2^i2i 。 然后对于输入的 a[i]a[i]a[i],如果当前 a[i]a[i]a[i] 在第 xxx 位(二进制)是 111,那么这个点向 x1x_1x1 连一条边权为 000 的边,x2x_2x2 向该点连一条边权为原创 2020-08-15 14:39:09 · 279 阅读 · 0 评论 -
Codeforces Round #656 (Div. 3) 部分题解(D、E、F)
[D. a-Good String](a-Good String) 思路: 很明显对于 ‘a’ ,有两种选择,在左区间和右区间,那么对于 ‘b’,‘c’,‘d’ 也同理。 分析一下 ‘a’。 如果’a’ 串 左区间全为 ‘a’ ,把其变为’a’ 的代价为 x ,那么右区间一定是 ‘b’ 串,把右区间变为’b’ 串的代价为 y(这里递归处理),其代价为 x+y。 如果’a’ 串 右区间全为 ‘a’ ,把其变为’a’ 的代价为 z ,那么左区间一定是 ‘b’ 串,把左区间变为’b’ 串的代价为 f(这里递归处理原创 2020-07-18 15:18:09 · 431 阅读 · 0 评论 -
牛客小白月赛16 J 小雨坐地铁(虚点+建图+最短路)
因为有中转站,所以不清楚从哪里来,状态不好记录(貌似可以开dis[i][j],表示在i号线到j点的最短路) 所以对于每一个点建立一个虚点,然后对于每一条地铁上的点都连上这个虚点,达到中转的目的。 code #pragma GCC optimize(2) #include<bits/stdc++.h> using namespace std; const int man = 5e5+1005; #define IOS ios::sync_with_stdio(0) #define ull unsi原创 2020-07-11 19:13:03 · 218 阅读 · 0 评论 -
Codeforces Round #641 (Div. 2) E. Orac and Game of Life
对于某个点,只要它开始变化了,那么之后就一定呈周期性变化,所以我们只需要算出没个位置在第几次迭代开始第一次变化就好了,先把一个连通块元素个数大于2的全部放进去,然后在进行bfs搜出每个位置的dis,表示 到达这里需要最少需要多少次迭代。 #pragma GCC optimize(2) #include<bits/stdc++.h> using namespace std; const int man = 1e3+10; #define IOS ios::sync_with_stdio(0) #d原创 2020-05-20 11:47:20 · 163 阅读 · 0 评论 -
Codeforces Round #635 (Div. 2) C. Linova and Kingdom
这题真的忐忑,首先读完题目第一反应就是直接dfs一遍,求一个深度,选深度最深的k个,结果题目要求是经过旅游景点,然后发现这不可行,然后想了一种贪心思路,按dep从大大小排序,然后dep相等在按直接儿子个数从小到大排序,因为儿子越多的,选了它就会对选的dep更深选的影响越大,然后排完序依次选,答案就是dep - siz + 1,写了一发,交上去wa5,因为假设节点 u 的dep比较大,但是他的子孙也...原创 2020-04-17 16:35:13 · 194 阅读 · 0 评论 -
最短路模板
dij struct p{ int v,w; p(){} p(int v,int w){ this->v = v; this->w = w; } bool operator < (const p &a)const{ return w > a.w; } }; vector&...原创 2020-03-31 16:44:15 · 168 阅读 · 0 评论 -
Codeforces Round #625 D. Navigation System
题意 给定一个有向图,n个点,m条边(2≤n≤m≤2⋅1052≤n≤m≤2⋅10^52≤n≤m≤2⋅105) 然后k个点,表示沿路经过的点。然后每次会导航到最后一个点的最短路, 如果最短路改变,那么重整次数加1,要求最小次数和最多次数。 思路 为什么会有最大,最小,肯定是当前到终点的最短路有多条,然后每次导航的不是当前要走的那条路,就产生了最大、最小值。 每次我们都要得到一个到终点的最短路,很明显...原创 2020-03-03 20:21:17 · 346 阅读 · 0 评论