从集合角度进行分析 f[i] 代表i所能到达的点的集合, 假如i的子节点为j1 j2 … jn 那么f[i] 应该为它们的子节点的交集,因为坑你有重边,可能好几个点能同时到达同一个点。 因此我们应该用个数组来表示每一个子节点能够到达的点,然后把它们给并起来就行了,如果说用bool数组的话 时间复杂度为O(NM)的因为每一个点每经历一条边都要把它的所有都要变量数组一次。 优化可以用bitset 每次操作都为n / 32 那么总的时间复杂度为O(N M / 32 );
但是......bitsetTLE怎么办? 请大佬指点迷津~~~~
如果这道题用betset也会TLE的话,那么就只有两种可能,一种是你的算法是正确的但是过程错了,第二种就是这道题的正解不是用betset该考虑其它更优解法。
谢谢啦~
主要是因为我太弱了QwQ
慢慢来加油
嗯嗯
但是......bitsetTLE怎么办?
请大佬指点迷津
~~~~如果这道题用betset也会TLE的话,那么就只有两种可能,一种是你的算法是正确的但是过程错了,第二种就是这道题的正解不是用betset该考虑其它更优解法。
谢谢啦~
主要是因为我太弱了QwQ
慢慢来加油
嗯嗯