上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 17 下一页
摘要: 道路与航线 \(topsort + dijkstra\) \(有负边,但spfa已死.\) \(由题意,图中会有很多块,每个块之间是航路(单向边),块内部是道路(双向边).\\所以我们用拓扑序的顺序对每个块做Djk就可以了.保证了正确性和时间.\) #include <bits/stdc++.h> 阅读全文
posted @ 2021-03-23 22:07 phr2000 阅读(38) 评论(0) 推荐(0) 编辑
摘要: https://ac.nowcoder.com/acm/problem/22594 \(拆点\) \(把每个点拆分成下标和经过的次数然后做一遍dijkstra即可\) \(为了表示拆出的点,dist[]和st[]都要升维,每个点有三个元素:id,cnt,dis\) #include <bits/st 阅读全文
posted @ 2021-03-14 21:32 phr2000 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 内联函数 \(将函数定义为宏函数或内联函数都可以节约函数压栈出栈的时间\) \(宏函数的问题:\) #define MAX(a, b) ((a) > (b)) ? (a) : (b) \(宏函数是无脑展开, 在预处理阶段进行,它不具有语法的检测能力. 如:\) MAX(a++, b++) -> (( 阅读全文
posted @ 2021-03-13 15:48 phr2000 阅读(240) 评论(0) 推荐(0) 编辑
摘要: C. 1D Sokoban 思路参考 思路 \(我们去枚举每一个b[i]为k,将其作为向右推箱子走到的最远的下标,那么答案就有左右两部分:\) \(右边:最远动过的箱子到k,那么对于初始位置\ge k且处于特殊位置的箱子要算入答案.f[i]表示从i到n箱子已经在特殊位置的个数.\) \(左边: 对于 阅读全文
posted @ 2021-03-06 20:10 phr2000 阅读(186) 评论(0) 推荐(0) 编辑
摘要: B. Berland Crossword \(直接去枚举四个角落,注意枚举的方法,本题如何写的简洁很关键.\) #include <bits/stdc++.h> using namespace std; #define IO ios::sync_with_stdio(false);cin.tie(0 阅读全文
posted @ 2021-03-04 21:36 phr2000 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 滑雪与时间胶囊 \(本题可作为\ Prim堆优化\ 求最小生成树的模板题\) \(由于受高度的限制,所以队列中存的不止要有边权,还得有点的高度,\\如果只存边权,就可能先把高度小的入队,最后发现走不通,又得回到高度大的点\\这个时候统计的ans就不对了.\) #include <bits/stdc+ 阅读全文
posted @ 2021-03-04 17:52 phr2000 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 公路修建问题 \(二分 + 最小生成树\) 题意 \(每两个点有长边和短边,要求生成最小生成树,并且长边的次数不少于K.\\求满足该条件的边权最大的值的最小值.\) 思路 \(注意此题不关心最终的边权和最小,它只关心能否全连通,所有Kruskal不用排序,\\我们去二分最大的边权,由于只用关心一条边 阅读全文
posted @ 2021-03-02 21:11 phr2000 阅读(140) 评论(0) 推荐(0) 编辑
摘要: https://ac.nowcoder.com/acm/problem/16697 #include <bits/stdc++.h> using namespace std; #define IO ios::sync_with_stdio(false);cin.tie(0); cout.tie(0) 阅读全文
posted @ 2021-03-02 18:04 phr2000 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 追债之旅 \(最短路 + dp\) 思路 \(这里用了拆点,即每个点并不只是位置,而是位置+到达的天数\) \(dis[i][j]:表示第i天到达j的最小花费\) \(dist[day][to]=min(dist[day][to],dist[day-1][now]+w[i]+cosy[day])\) 阅读全文
posted @ 2021-03-01 16:26 phr2000 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 题目链接 \(有人得知自已的消息等价于找到最小环\) \(有两种做法:\) \((1)栈:每过一个点将其放入栈中,因为存在环,必然会有走到某个点但是\\其已经在栈中的情况,这个时候进行pop操作,直到弹出该点,总共弹出的点数\\就是环的长度\) \((2)并查集:维护每个点到根节点的距离,如果发现有 阅读全文
posted @ 2021-02-28 15:36 phr2000 阅读(101) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 17 下一页