【PTA-训练day27】L2-038 病毒溯源 + L2-039 清点代码库 + L2-040 哲哲打游戏
创始人
2024-06-01 13:32:07

目录

L2-038 病毒溯源 - dfs求树最大深度及路径

L2-039 清点代码库 - STL嵌套使用+结构体自定义排序

L2-040 哲哲打游戏 - vector建图


L2-038 病毒溯源 - dfs求树最大深度及路径

PTA | 程序设计类实验辅助教学平台

思路:

  • 用链表建树 找到根节点
  • dfs根节点寻找最大深度
  • son[u]存u的子节点
  • 如果深度比当前深度大,则更新深度和路径
  • 如果深度=当前深度,则路径取节点值小的
#include 
using namespace std;const int N=10010,M=N*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 res=0;son[u]=-1;for(int i=h[u];i!=-1;i=ne[i]){int j=e[i];int d=dfs(j);if(res>n;memset(h,-1,sizeof h);for(int i=0;i>cnt;while(cnt--){int x;cin>>x;add(i,x);st[x]=true; //把有父节点的点都标记 则未标记的就是根节点}}int rt=0;while(st[rt]) rt++; //找根节点cout<

L2-039 清点代码库 - STL嵌套使用+结构体自定义排序

PTA | 程序设计类实验辅助教学平台

#include 
using namespace std;int n,m;
set> st;
map,int> mp;struct cmp
{bool operator()(const pair,int>&a,const pair,int>&b)const{if(a.second!=b.second) return a.second>b.second;else return a.first>n>>m;while(n--){vector v;for(int i=0;i>x;v.push_back(x);}st.insert(v);mp[v]++;}cout<,int>,cmp> s;for(auto x:st) s.insert({x,mp[x]});for(auto x:s){cout<

L2-040 哲哲打游戏 - vector建图

PTA | 程序设计类实验辅助教学平台

#include 
using namespace std;const int N=1e5+10;
vector v[N];
int save[N];int main()
{int n,m;cin>>n>>m;for(int i=1;i<=n;i++){int k;cin>>k;for(int j=0;j>x;v[i].push_back(x);}}int idx=1;while(m--){int a,b;cin>>a>>b;if(a==0) idx=v[idx][b-1];else if(a==1){save[b]=idx;cout<

相关内容

热门资讯

苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...