```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