首页 > 其他分享 >C - Ladder Takahashi -- ATCODER

C - Ladder Takahashi -- ATCODER

时间:2022-11-13 23:44:07浏览次数:54  
标签:ATCODER gp -- Graph Ladder DFS int visited addEdge

C - Ladder Takahashi

https://atcoder.jp/contests/abc277/tasks/abc277_c

 

思路

把梯子可达楼层看成图的节点

把梯子看成节点之间的连线

所以整个问题变成图的遍历问题,找到所有节点的最大值。

 

 Code

https://atcoder.jp/contests/abc277/submissions/36429190

/******************************** GRAPH START ***************************************/
// Graph class represents a directed graph
// using adjacency list representation
class Graph {
public:
    map<int, bool> visited;
    map<int, list<int>> adj;
    int max = 1;
 
    // function to add an edge to graph
    void addEdge(int v, int w);
 
    // DFS traversal of the vertices
    // reachable from v
    void DFS(int v);
};
 
void Graph::addEdge(int v, int w)
{
    adj[v].push_back(w); // Add w to v’s list.
}
 
void Graph::DFS(int v)
{
    // Mark the current node as visited and
    // print it
    visited[v] = true;
//    cout << v << " ";
 
    if (v > max){
        max = v;
    }
 
    // Recur for all the vertices adjacent
    // to this vertex
    list<int>::iterator i;
    for (i = adj[v].begin(); i != adj[v].end(); ++i)
        if (!visited[*i])
            DFS(*i);
}
 
/******************************** GRAPH END ***************************************/
 
/*
https://atcoder.jp/contests/abcxxx/tasks/abcxxx_d
*/
 
int n;
Graph gp;
 
int main()
{
    cin >> n;
 
    for(int i=1; i<=n; i++){
        int a, b;
        cin >> a >> b;
        
        gp.addEdge(a, b);
        gp.addEdge(b, a);
    }
 
    gp.DFS(1);
    
    cout << gp.max << endl;
 
    return 0;
}
 

 

标签:ATCODER,gp,--,Graph,Ladder,DFS,int,visited,addEdge
From: https://www.cnblogs.com/lightsong/p/16887735.html

相关文章

  • Day10.1:while循环结构
    while循环结构while循环while循环结构是最基本的循环,他的结构为:while(布尔表达式){//循环的内容}只有当布尔表达式的值为true时,开始循环我们一般需要的是有限......
  • 性能测试场景设计之 压力测试场景
    负载测试阶梯线程组-steppingthreadsgroup通过逐步增加并发用户数来进行压测,增加并发的数量不一定是相同的增加的量(或者叫做步长),可以相同,也可以不相同。增加的量......
  • 软件工程是不是教会不会写程序的人开发软件吗?
    “Softwareengineering,ofcourse,presentsitselfasanotherworthycause,butthatiseyewash:ifyoucarefullyreaditsliteratureandanalysewhatitsdevot......
  • 容器内存相关知识
    这篇文章是我研究容器内存整理出的相关内容.前后内容并没有上下文关系,每个知识点都可以单独查看.内存控制使用这样的命令启动一个容器dockerrun-d-m300Mxxx.可......
  • Paddle Graph Learning (PGL)图学习之图游走类模型[系列四]
    PaddleGraphLearning(PGL)图学习之图游走类模型[系列四]更多详情参考:PaddleGraphLearning图学习之图游走类模型[系列四]https://aistudio.baidu.com/aistudio/proj......
  • mysql benchmark
    数据库创建用户密码数据库,字段值均为benchmark。安装sysbench,执行命令。测试结果:#u-ubuntu-vmexportMYSQL_HOST=192.168.1.10#准备数据sysbench--db-driver=my......
  • 223201062520-软件工程基础Y- 实验一 朱旭个人项目报告
    沈阳航空航天大学软件工程基础实验报告实验名称:实验一实验题目:个人项目专业软件工程学号223201062520姓名朱旭指导教师孟桂英成绩完成......
  • MySQL高级6【MVCC-其他日志-主从复制-备份与恢复】尚硅谷
    【第16章多版本并发控制】1.什么是MVCCMVCC(MultiversionConcurrencyControl),多版本并发控制。顾名思义,MVCC是通过数据行的多个版本管理来实现数据库的并发控制。这......
  • 蓝桥杯_每日一题Day1
    12届蓝桥杯-第四题:输入:一串乱序数字(以英文逗号隔开)输出:非最小或最大的数,输入中非连续的数样例输入:3,2,4,6,7样例输出:51.分割字符串函数split():str.split(str="",num=......
  • LeetCode 167.TowSum
    双指针classSolution{public:vector<int>twoSum(vector<int>&numbers,inttarget){intl=0,r=numbers.size()-1,sum=0;while(l<r){......