登山小分队

2024-02-15 14:40
文章标签 登山 小分队

本文主要是介绍登山小分队,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 G-登山小分队_第20届上海大学程序设计联赛夏季赛(校外同步赛) (nowcoder.com)

思路:把每个叶子结点放入vector里然后遍历vector,能往上走一层的,往上走,若走到根节点把它删掉 

#include <bits/stdc++.h>
using namespace std;
const int N=1e3+10;
struct node{int cnt,k;
}a[N];
bool cmp(node a,node b){return a.cnt<b.cnt;
}
int f[N],s[N];
vector<node>v;
int main(){int n;cin>>n;for(int i=0;i<n;i++){int x,y;cin>>x>>y;f[y]=x;//建立父子关系s[x]++;//计算父亲节点的出度个数a[x].cnt=a[y].cnt+1;//计算每个节点到根节点的距离}for(int i=1;i<=n;i++){if(s[i]==0){//叶子结点的出度为0a[i].k=i;//记录节点编号v.push_back(a[i]);//把叶子结点放入数组里}}int res=0;map<int,int>mp;sort(v.begin(),v.end(),cmp);//按照叶子结点到根节点的距离排序,距离短的放前面while(v.size()){mp.clear();for(int i=0;i<v.size();i++){if(mp[v[i].k]==0){mp[v[i].k]=1;v[i].k=f[v[i].k];if(v[i].k==1){//走到根节点v.erase(v.begin()+i,v.begin()+i+1);//删除根节点所在的连边i--;}}}res++;}cout<<res<<endl;return 0;
}

这篇关于登山小分队的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/711681

相关文章

[创业之路-145] :做项目做产品,50米/100米短跑与马拉松长跑,跑法不同,几人的小分队作战与兵团战役,打法不同

目录 一、做项目做产品类同于跑步,50米/100米短跑与马拉松长跑,跑法不同 1. 50米/100米短跑与项目/产品短周期开发的类比 2. 马拉松长跑与长期项目/产品开发的类比 3. 跑法不同的核心差异 二、做项目做产品类同于打仗,几人的小分队作战与兵团战役,打法不同 1. 规模与复杂度 2. 战略与战术 3. 沟通与协作 4. 领导力与执行力 5. 风险评估与应对 一、

算法学习008-登山爬石梯 c++动态规划/递归算法实现 中小学算法思维学习 信奥算法解析

目录 C++登山爬石梯 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C++登山爬石梯 一、题目要求 1、编程实现 小明周末和朋友约好了一起去爬山,来到山下,发现登山道是由石头铺成,每一段会有向上铺的石阶,然后是一段平路,如此反复,直到山顶。刚好最近在学c++编程,就想到小兔子老

登山小分队(dfs,模拟)

原题链接: 题目描述 Foxity和他的好友们相约去爬山,但是他们每个人都来到了不同的山脚下。整个山的结构类似一棵 "树",有很多的观光节点通过一条条山道连接起来。 在图论中,树是一种无向图,其中任意两个顶点之间存在唯一一条路径。或者说,只要没有回路的连通图就是树。这个问题中,我们将山顶视作树的根节点,而山脚视为树的叶节点,上山的每一条路可以视作树的一条边。 由于上山的道路年久失修,每条道路在

逆向破解学习-登山赛车

试玩 课程中的内容 Hook代码 import de.robv.android.xposed.XC_MethodHook;import de.robv.android.xposed.XposedHelpers;import de.robv.android.xposed.callbacks.XC_LoadPackage;public class HookComYoDo1SkiS

【零基础强化学习】100行代码教你实现基于DQN的gym登山车

基于DQN的gym登山车🤔 写在前面show me code, no bb界面展示写在最后谢谢点赞交流!(❁´◡`❁) 更多代码: gitee主页:https://gitee.com/GZHzzz 博客主页: CSDN:https://blog.csdn.net/gzhzzaa 写在前面 作为一个新手,写这个强化学习-基础知识专栏是想和大家分享一下自己强化学习

#离散#ssl 1747 登山机器人问题

题目 登山机器人可以携带有限的能量。在登山过程中,登山机器人需要消耗一定能量,并且可以在机器人之间通过接触传递能量。计算用这n个登山机器人进行不返回的接力登山可攀登的最高的高度。 分析 关键是登山机器人的接力,可以用 x / y 2 x/y^2 x/y2来大到小排序,离散后传递能量就搞定了。 代码 #include <cstdio>#include <algorithm>us

Inherd (硬核)开源小分队招募

开源是一项非常迷人的活动,一场追求自由的事业。 数字隐私:持续保护 我对于『创造一个以开源为核心的小组』的想法由来已久,大抵可能追溯到两三年前,一场关于数字化隐私的讨论中。毕竟,这个星球 or 这个国家最聪明的一群人,要么在想着怎么赚取高额的广告费,要么在想着如何通过剥削劳动人民赚钱,要么则是在通过贩卖隐私赚钱。 在数字化时代,我们一直在裸奔,尽管一直在逃避,终究不是办法。 底层编程:寻找未来

【算法】登山(线性DP,最长上升)

题目 五一到了,ACM队组织大家去登山观光,队员们发现山上一共有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览景点的编号都要大于前一个浏览景点的编号。 同时队员们还有另一个登山习惯,就是不连续浏览海拔相同的两个景点,并且一旦开始下山,就不再向上走了。 队员们希望在满足上面条件的同时,尽可能多的浏览景点,你能帮他们找出最多可能浏览的景点数么? 输入格式 第一行包含整数N,表示景点数

java设计小分队01

1.开发流程: 编辑:生成.java文件编译:javac命令,生成.class文件运行:java命令 2.标识符下列那个(不)合法: 除了第一个词小写,其他词首字母大写;java标识符为字母、下划线、美元符号和数字组成的长度不限的字符串,且不能以数字开头,此外,标识符不可以是关键字和保留字。 3.char类型定义:例如:char c=‘A’/ c=97/int x,y; 4.运算符加减乘除:例如

三汇熊登山:从传统语音通信走向融合统一通信

在移动互联网、云计算等新兴技术的推动下,企业协作及通信市场快速发展,传统企业、各大互联网巨头和初创企业纷纷入场,共同分食企业协作及通信这块“大蛋糕”。与此同时,企业协作及通信市场也面临着技术、实践等方面各种各样的挑战。在此背景下,企业IT 第1门户——企业网D1net隆重举办国内企业协作及通信市场最大的盛会——第十八届CENCE 企业协作及通信大会。本次大会以“移动社交时代的企业协作”为主题,众