摘要:
如果想要判定是否是DAG,用拓扑排序是一个好选择,但是本题可以删一条边 如果真的傻傻的去枚举删边就难顶了 我们要想到,对于删边,其实就是入度-1,而我们知道,删完能拓扑,说明成功了,因此只要枚举点,对入度操作再跑拓扑,就能AC 这个转化还是很有意思的,我们来思考正确性,首先对于一个环,肯定因为到了某 阅读全文
摘要:
在DAG上用拓扑排序求最长最短路似乎十分常见,我在做一道cf的题目时无意间看到这题 这题要求的是最长路,因此用拓扑序来求,为什么可以用拓扑序呢? 因为我们对于每个点,都会跟他相连的点被更新,因此就可以通过max操作,直到所有点被更新完,才会将他入队,那么这个点的最终值也就被确定 #include<i 阅读全文
摘要:
这道题本质上就是找左右边第一个比他小的数在哪,作为他的边界 因为数据范围比较大,所以我们考虑用到单调栈来写 可以先求左边,再反转数组重求,也可以直接到着求右边 如果反转数组,那么就要注意最后相减的表达式 #include<iostream> #include<cstring> #include<cs 阅读全文
摘要:
本题比较简单,就是线段树的几个基本操作,而素数,我们自然想到用素数筛筛一下后直接判定即可 这里有几个小坑点,在单点更新的时候也需要pushdown,因为区间更新可能会影响到最后节点的值 另外按照我的写法,我把lazy和数值分开表示,所以在pushdown的时候要特判是否到了叶子,如果到了,num也需 阅读全文