十分接近正解的做法

P3916 图的遍历

```cpp``` do { memset(vis,0,sizeof(vis));changed=0; for(int i=1;i<=n;i++) { if(!vis[i]) search(i); } }while(changed); ```
by oscar @ 2017-08-25 11:49:41


@[oscar](/space/show?uid=3346) 嗯哼?
by zhaoyifan @ 2017-08-25 14:12:25


@[oscar](/space/show?uid=3346) 并没有看懂。
by vinvor @ 2017-08-25 14:13:22


@[zhaoyifan](/space/show?uid=43140) 我错了。。markdown没打上。。 实际上这题的确可以不用tarjan,只需要不停更新节点使得每个节点的“能达到的最大编号”信息不再变化为止(可能是因为数据较弱) 再试一次markdown... ```cpp do { memset(vis,0,sizeof(vis)); changed=0; for(int i=1;i<=n;i++) { if(!vis[i]) search(i); } }while(changed); ``` 只需要在更新信息时把changed记为1即可
by oscar @ 2017-08-25 14:47:47


@[zhaoyifan](/space/show?uid=43140) 我错了。。markdown没打上。。 实际上这题的确可以不用tarjan,只需要不停更新节点使得每个节点的“能达到的最大编号”信息不再变化为止(可能是因为数据较弱) 再试一次markdown... ```cpp do { memset(vis,0,sizeof(vis)); changed=0; for(int i=1;i<=n;i++) { if(!vis[i]) search(i); } }while(changed); ``` 只需要在更新信息时把changed记为1即可
by oscar @ 2017-08-25 14:48:06


@[oscar](/space/show?uid=3346) 呃呃呃网有点卡发出去两次。。
by oscar @ 2017-08-25 14:48:44


看上去很高大上
by JaneWang @ 2017-08-26 09:37:49


|