不多说了,T1,召唤兽:杨思越!!!

void dfs(int x){
	if(ans[x]){
		return;
	}
	ans[x]=i;//雨露均沾,给这个点能到达的所有点中的所有点都算出来了 
	for(int i=0;i<g[x].size();i++){
		int u=g[x][i];
		dfs(u);
	}
}

还有,黄巾军一边去

for(i=n;i>=1;i--){
		if(!ans[i]){//没被遍历到 
			dfs(i);//遍历 
		}
	}

这俩搭配,能优化很多,你的TLE就没了

好的

遍历:

	for(int i=n;i>=1;i--){
		if(!dis[i]){
			dfs(i,i);
		}
	}

k这玩意儿可以放外面 :grinning:

绝对不TLE

这回是我先发的了 :laughing: :laughing: :laughing:

@郭子路 解决方案!

你俩一人一分算了…

@郭子路 解决方案!

dfs里的

杨思越,你那个i是啥?

雨露均沾前面的那个

前面定义的,就是这样:

int n,m;
vector<int> g[100005];
int ans[100005];
int i;

看,我的通俗易懂!哈哈!

?666

解决方案

不同意,我的对进步有帮助

我的简洁

OK

谢谢

你多少行?

22