随笔分类 - 图论—拓扑排序
摘要:输出原序列有45分…… 字典序最小可以和拓扑序联系起来。 根据原来的题意不是很可做,于是对原序列求逆,令q[p[i]]=i; 那么就成功将题意转化:相邻元素值的差大于等于k时可以交换,使序列字典序最小。 考虑一下$n^2$怎么做,对于$i<j$,如果$abs(q[i]-q[j])<k$,那么q[i]
阅读全文
摘要:[LOJ#2255][BZOJ5017][Snoi2017]炸弹 看到这题首先想到了线段树优化建边, 我们将可以炸到的炸弹之间连上单向边,然后缩点,拓扑一下什么的就可以求出来每个问题的解了。 虽然不是正解,但貌似可做。 我们可以想一想这道题是否存在一些有趣的性质,可以让我们优化建边。 假设点a在点b
阅读全文
摘要:2208: [Jsoi2010]连通数 对于原图建反图,考虑到有环,tarjan缩点,就得到一张有向无环图,用bitset记录能到某scc的点(原图点),跑拓扑将bitset或(|)下去就可以了,最后答案为∑(bitset中1的个数*scc的大小)。开始考虑错了: 1 for(int i=1;i<=
阅读全文
摘要:「HNOI2015」菜肴制作 这道题想到了其实还挺水的,一开始我直接用小根堆拓扑然后就爆0了,然后我又用十万个堆搜索,T30,还是xkl告诉我要倒着拓扑。 首先要建反图,对于入度为0的点,较小的点先输出所以要优先拓扑大的点,这样就保证了大的点及其子树(其实并不是树,这样好理解点)都存在数组前面,再倒
阅读全文