娄底哪里学习网站建设和seo,工程设计公司加盟,php网站开发框架,口碑好的做pc端网站目录
L2-038 病毒溯源 - dfs求树最大深度及路径
L2-039 清点代码库 - STL嵌套使用结构体自定义排序
L2-040 哲哲打游戏 - vector建图 L2-038 病毒溯源 - dfs求树最大深度及路径
PTA | 程序设计类实验辅助教学平台 思路#xff1a; 用链表建树 找到根节点dfs根节点寻找最大…目录
L2-038 病毒溯源 - dfs求树最大深度及路径
L2-039 清点代码库 - STL嵌套使用结构体自定义排序
L2-040 哲哲打游戏 - vector建图 L2-038 病毒溯源 - dfs求树最大深度及路径
PTA | 程序设计类实验辅助教学平台 思路 用链表建树 找到根节点dfs根节点寻找最大深度son[u]存u的子节点如果深度比当前深度大则更新深度和路径如果深度当前深度则路径取节点值小的#include bits/stdc.h
using namespace std;const int N10010,MN*2;
int h[N],ne[M],e[M],idx;
int st[N],son[N];void add(int a,int b)
{e[idx]b,ne[idx]h[a],h[a]idx;
}int dfs(int u) //搜索u结点到叶节点的最长路径值
{int res0;son[u]-1;for(int ih[u];i!-1;ine[i]){int je[i];int ddfs(j);if(resd) resd,son[u]j;else if(resd) son[u]min(son[u],j);}return res1;
}int main()
{int n;cinn;memset(h,-1,sizeof h);for(int i0;in;i){int cnt;cincnt;while(cnt--){int x;cinx;add(i,x);st[x]true; //把有父节点的点都标记 则未标记的就是根节点}}int rt0;while(st[rt]) rt; //找根节点coutdfs(rt)endl;coutrt;while(son[rt]!-1){rtson[rt];cout rt;}
} L2-039 清点代码库 - STL嵌套使用结构体自定义排序
PTA | 程序设计类实验辅助教学平台
#include bits/stdc.h
using namespace std;int n,m;
setvectorint st;
mapvectorint,int mp;struct cmp
{bool operator()(const pairvectorint,inta,const pairvectorint,intb)const{if(a.second!b.second) return a.secondb.second;else return a.firstb.first;}
};int main()
{cinnm;while(n--){vectorint v;for(int i0;im;i){int x; cinx;v.push_back(x);}st.insert(v);mp[v];}coutst.size()endl;setpairvectorint,int,cmp s;for(auto x:st) s.insert({x,mp[x]});for(auto x:s){coutx.second;for(int i0;ix.first.size();i) cout x.first[i];coutendl;}} L2-040 哲哲打游戏 - vector建图
PTA | 程序设计类实验辅助教学平台
#include bits/stdc.h
using namespace std;const int N1e510;
vectorint v[N];
int save[N];int main()
{int n,m;cinnm;for(int i1;in;i){int k;cink;for(int j0;jk;j){int x;cinx;v[i].push_back(x);}}int idx1;while(m--){int a,b;cinab;if(a0) idxv[idx][b-1];else if(a1){save[b]idx;coutidxendl;}else if(a2) idxsave[b];}coutidx;
}