首页 > 其他分享 >ABC 270 C - Simple path(树+dfs)

ABC 270 C - Simple path(树+dfs)

时间:2022-09-25 11:11:26浏览次数:51  
标签:Sample ABC Simple ed LL dfs 270 Copy 节点

第一次写出比较正经的树+dfs,这不得写篇博客

题目大意:
给定一棵树,具有n个节点,给定n-1条边,给定一个起点和终点,

让我们输出从起点到终点的路径。
Sample Input 1 
Copy
5 2 5
1 2
1 3
3 4
3 5
Sample Output 1 
Copy
2 1 3 5

Sample Input 2 
Copy
6 1 2
3 1
2 5
1 2
4 1
2 6
Sample Output 2 
Copy
1 2

把每个初始节点看成父节点

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1000020;
const LL N=200200,M=2002;
LL n,be,ed;
vector<LL> v,g[N];
void dfs(LL idx,LL fa)
{
    if(idx==ed)
    {
        for(LL i=0;i<v.size();i++)
            cout<<v[i]<<" ";
        return ;
    }
    if(g[idx].size()==0)//走到叶子节点直接退回
    {
        return ;
    }
    for(LL i=0;i<g[idx].size();i++)
    {
        LL j=g[idx][i];
        if(j==fa) continue;//特判父节点
        v.push_back(j);
        dfs(j,idx);
        v.pop_back();//状态回溯
    }
}
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    cin>>n>>be>>ed;
    for(LL i=1;i<=n-1;i++)
    {
        LL a,b;
        cin>>a>>b;
        g[a].push_back(b);
        g[b].push_back(a);
    }
    v.push_back(be);
    dfs(be,-1);//根节点的父节点是-1,表示他没有父节点
    return 0;
}

标签:Sample,ABC,Simple,ed,LL,dfs,270,Copy,节点
From: https://www.cnblogs.com/Vivian-0918/p/16727448.html

相关文章

  • AtCoder Beginner Contest 270
    咕咕咕。D-Stones冲了发贪心,然后WA。然后想了个DP,就令\(dp_{n,0/1}\)表示石头总数为\(n\)时,先手/后手最多能拿多少个石头,然后跑个\(O(nk)\)的DP就完事了。......
  • ABC 243 D - Moves on Binary Tree(树+字符串)
    https://atcoder.jp/contests/abc243/tasks/abc243_d题目大意:给定一颗完全二叉树,他总共可以有(2^10^100)-1个节点,节点下标为1,2,...,(2^10^100)-1。给我们一个长度为n......
  • 关爱2700多万听障者,手语服务助力无声交流
    如果有一天,周遭的世界突然变得很安静,动听美妙的音乐,在你看来只是沉寂;振奋人心的演讲,对你而言只是默剧;大自然的千里莺啼,于你来说也只是画卷。你会不会感到害怕?而有这么一群......
  • 关于 SAP UI5 SimpleForm 控件里的 ColumnsL 和 labelSpanXL 的测试
    测试情况罗列如下:label和columns为1:1的情况下:结果:Label改为2:此时第三行的Label,ZIPCode/City终于可以显示完全了:进一步扩大Label值为3:1如果是3:3......
  • SAP UI5 SimpleForm 控件的 adjustLabelSpan 属性
    我们在SAPUI5应用开发时,在XML视图里使用SimpleForm控件,会定义其adjustLabelSpan属性。如果设置,labelSpanL和labelSpanM的使用取决于一行中FormContainer的......
  • ABCD*E=DCBA
    #include<stdio.h>#include<stdlib.h>intmain(void){inta,b,c,d,e;for(a=0;a<=9;a++){for(b=0;b<=9;b++){for(c=0;c<=9;c++)......
  • ABC 242 D - ABC Transform(dfs)
    https://atcoder.jp/contests/abc242/tasks/abc242_d题目大意:初始化给定一个字符串为S(S中只包含ABC三种字符)每次经过一次操作下:A就会变成BC,B变成CA,C变成AB。问我们......
  • ABC 269 (A-G)
    A给定\(a,b,c,d\),输出\((a+b)(c-d)\)和\(\texttt{Takahashi}\)。模拟即可。点击查看代码inta=read(),b=read(),c=read(),d=read();writeln((a+b)*......
  • ABC 241E - Putting Candies(循环节:链+环)
    https://zhuanlan.zhihu.com/p/473078132这位大佬的E解释的非常清楚,强推E-PuttingCandieshttps://atcoder.jp/contests/abc241/tasks/abc241_e题目大意:给定一个......
  • ABC 241D - Sequence Query(multiset)
    newknowledge(stl)multiset位于库中,可以看成一个序列,插入一个数,删除一个数都可以在O(logn)的时间内完成,能时刻保证序列中的数是有序的,而且序列中可以存在重复的数。h......