7654-跳山登山赛
本文总阅读量次
题意要求从降落点能够访问的最高山峰编号,如果从每个节点出发去寻找最高峰,时间复杂度为
void dfs(int x,int h){ //x为顶点编号 h为当前最高峰
ans[x]=h; //x能访问到h
vis[x]=1;
for(auto y:G[x]){
if(vis[y]==0)dfs(y,h);
}
}
主程序需要从高到低枚举山峰。
for(int i=n;i>=1;i--){
if(vis[i]==0)dfs(i,i); //i出发,当前最高峰编号i
}