随笔分类 - 图论 -- 最短路
摘要:CSP S 格雷码 solution: 直接模拟即可。 时间复杂度 O(n) 。 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; vo
阅读全文
摘要:link solution: 大力线段树即可。 有一个简单做法为在每一个线段树的节点维护一个 set ,线段树存 x 轴, set 维护 y 轴,然后每次暴力取点 dijkstra 即可。 因为线段树上最多 nlogn个点,在线段树上取点后还要删除此点,动态维护,不直
阅读全文
摘要:link 这题卡我精度,调了一晚上才调对,因为没有想到图还可以不连通 其实可以预处理出好多东西,距离(dis(u,v)),买卖物品(从u到v买卖物品的最大利润,例(maxSu,i−Bv,i),然后其实可以发现就是一个十分普通普遍的分数规划式子,就每次二分k,然后建
阅读全文
摘要:题目 题解 T1: 简单bfs或者跑个最短路即可 #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<queue> #include<algorithm> using namespace s
阅读全文
摘要:link 考虑暴力,每个狗直接向他能到达的点连一条以到达时间为边权的边,然后跑spfa即可,建变数量N×M 但是N≤30000,M≤30000,所以优化建图,怎么搞呢,分块大法。我们设定i×n+j想做在第j个大楼上有第i个窗户,能直
阅读全文
摘要:题目 W神爷的题解 高级数据结构 T1: 其实是一道easy题,O(n3logn) 也是能卡过去的,本着要的70分的心态,最后尽然A了。 如果是正解则是O(n3),当确定你要选择的列时,不断往下扩展,因为此刻是单调函数,所以可以用单调队列优化。 #include<iostream> #
阅读全文
摘要:题目传送门 此题主要考察的是思想,可以借助最短路的思想去做,我写的是dijkstra,通过每次找中间点的方式,两次操作(请读者慢慢思考) 而两次操作一次跑的是题目上给的边,第二次跑的是反向边,请读者好好思考 而既然借助dijkstra的思想,每次找点,请注意,此坑本作者语文能力有限,无法讲解 #in
阅读全文
摘要:题目:链接: https://pan.baidu.com/s/1ef_9hGBhczW0B4dz5IUKmw 密码: qgjy T1: hash后直接二分查询即可 #include<iostream> #include<cstdio> #include<cstring> #include<algor
阅读全文