摘要: 最近做了好多二分+最短路的题啊 看到环之后就能想到SPFA判环了,但是具体怎么建边呢?我们把一个字符串的前两个字符看作一个节点,后两个字符看作一个节点,前面的向后面的连边(有向),边权为这个字符串的长度,这样,就把图建了起来,并且符合我们跑最长路找环的思想。但是,我们总不可能把所有环找出来看最大值吧 阅读全文
posted @ 2020-07-04 16:18 那一条变阻器 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 这道题我又用的Ford。谁叫Ford好写啊。 出现负环就会一直重新更新一个节点,而一个点最多只会被更新$n-1$次,所以跑完$Ford$后,再看有没有节点可以更新即可。 代码: #include <bits/stdc++.h> using namespace std; struct node{ in 阅读全文
posted @ 2020-07-04 11:16 那一条变阻器 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 为什么差分约束的题我总能不用差分约束做。 这道题我用的贪心。其实就是区间选点问题啦,对于这类问题,我们的贪心策略肯定是让多个区间覆盖在一个点上,那么我们可以想到的就是按照末尾排序,在一个区间的末尾去加点,这样才能使一个点覆盖更多的点,然后就随便统计统计,如果想要优化,可以加树状数组来搞,但是由于太懒 阅读全文
posted @ 2020-07-03 16:12 那一条变阻器 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 来一个思路比较暴力的题解吧。 暴力天下第一 思路: 这道题转化成差分约束的没想到后,我就想区间分割,把一个区间分割成两个小区间,如果两个小区间都被更新过了,那就拿来判断这两个小区间之和是否等于大区间。 具体实现: 分两步: 将这个区间当做一个大区间,把大区间依次分割成两个小区间,看两个小区间之和是否 阅读全文
posted @ 2020-07-03 10:07 那一条变阻器 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 这道题都没有用Ford的啊,跑的比SPFA还快,不加优化就可以过... 看到这一组组的不等式,就可以想到差分约束了,但是这道题需要进行转化,我这里跑的是最短路(好多大佬都跑的最长路qwq)。 \(b\ge a-c\) \(a\ge b+c\) 这个变化就得看好了$a\ge b$ && \(b\ge 阅读全文
posted @ 2020-07-02 20:55 那一条变阻器 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 啊这,为什么一道看上去完全跟图论无关的题有图论标签。 正题(以下没有特殊说明,均求的是最短路): 差分约束系统&&转化: 顾名思义,差分约束系统就是给你很多个形如$x_1-x_2\leqslant c_k$的不等式(其中c为常数),让你求出一组解或者判断无解。看上面的式子,把它变成这样:\(x_1\ 阅读全文
posted @ 2020-07-02 11:55 那一条变阻器 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 这道题绿题有点高了吧... 我一开始的思路就是一个暴力的遍历,用递归加一个记忆化,对于一个点不断的往下搜索,然后确定最大的,返回,给上面的节点。就在这个过程中,我们是搜到最大的数然后返回给上层的数,那我们为什么不直接从大的出发,那么大的那个数到达的点也就必然能达到这个大的数,这个很好实现,直接反向建 阅读全文
posted @ 2020-07-01 17:53 那一条变阻器 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 这篇题解没有用拓补排序 (嗐 菜就直说) 个人感觉这道题拓补排序没有变种$Floyd$好写吧,思维难度也低一点(亲眼目睹机房dalao这道题拓补排序调了很久)。 吐槽结束,开始正题~ 对于这道题为什么可以用$Floyd$,应该就是传递性了。当$A>B$时,\(B>C\),那么现在肯定有$A>C$了, 阅读全文
posted @ 2020-07-01 17:36 那一条变阻器 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 先吐槽一下这个难度吧,评的有点高了,但是希望别降,毕竟这是我能做出来的不多的紫题了(狗头)。 大家上来的第一反应应该都是啊,模板题,然后兴高采烈的打了拓补排序的板子,然后搞个小根堆,按照字典序输出就可。但是这样过不了第三组样例,为什么呢?不告诉你呢因为题目让你的仅仅是1后面快点跟2,2后面快点跟3而 阅读全文
posted @ 2020-06-30 20:37 那一条变阻器 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 看到这种明显的有向无环图,并且等级分明,自然而然就能想到拓补排序啦。对于这道题,我们就可以利用最短路计数的那种思想(不知道也没关系),设$j$是$i$的后继,$dis_i$表示以$i$为结尾有多少条食物链,那么就可以得到$dis_j+=dis_i$,然后往后面推,直到拓补排序结束。因为题目要求的是没 阅读全文
posted @ 2020-06-30 19:57 那一条变阻器 阅读(95) 评论(0) 推荐(0) 编辑