首页 > 其他分享 >L2-026 小字辈

L2-026 小字辈

时间:2024-03-19 11:34:58浏览次数:29  
标签:小字辈 parent int res ++ 026 L2 vec left

第一眼想到的是BFS,然后就用BFS,个人感觉还是有一丢丢麻烦。

#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
using namespace std;
#define ll long long
vector<vector<int>> vec;
int main() {
	int n;
	cin >> n;
	vec.resize(n+10);
	int root = 0;
	for (int i = 1; i <= n; i++) {
		int parent;
		cin >> parent;
		if (parent != -1) {
			vec[parent].push_back(i);
		}
		else {
			root = i;
		}
	}
	int pcnt = 0;
	int level = 0;
	set<int> res;
	queue<int> v;
	v.push(root);
	int flag = 0;
	while (!v.empty()) {
		int left = v.size();//left=2
		if (pcnt + left >= n) {//需要将这一次弹出来的全部记录下来
			flag = 1;
		}
		level++;
		for (int i = 0; i < left; i++) {
			int parent = v.front();
			v.pop();
			if (flag) res.insert(parent);
			++pcnt;//弹出加一
			for (int j = 0; j < vec[parent].size(); j++) {
				v.push(vec[parent][j]);
			}
		}
	}
	cout << level << endl;
	for (set<int>::iterator it = res.begin(); it != res.end();) {
		cout << *it;
		if (++it != res.end()) cout << " ";
	}
	return 0;
}

标签:小字辈,parent,int,res,++,026,L2,vec,left
From: https://www.cnblogs.com/chengyiyuki/p/18082397

相关文章

  • L2-025 分而治之
    如果一个城市未被炸毁,那如果他可达的其他城市也未被炸毁,说明方案不可行。#define_CRT_SECURE_NO_WARNINGS#include<bits/stdc++.h>usingnamespacestd;#definelllonglongvector<vector<int>>vec;//邻接表intmain(){ intn,m; cin>>n>>m; vec.resize(n+10......
  • L2-024 部落
    注意merge的时候如果p1和p2相等及时返回否则死循环了,代码有问题而不是算法超时。#define_CRT_SECURE_NO_WARNINGS#include<bits/stdc++.h>usingnamespacestd;#definelllonglongintparent[10010],deep[10010];intgetf(intx){ inty=x; while(parent[y]!=-......
  • L2-023 图着色问题
    老太太钻被窝,给爷整笑了。测试点2:颜色只能是k种,大于小于都过不去。#include<bits/stdc++.h>usingnamespacestd;intedges[503][503];intcolor[503];intmain(){ intv,e,k; cin>>v>>e>>k; for(inti=0;i<e;i++){ inta,b; cin>>a......
  • L2-022 重排链表
    这道题真的烦,输出想半天。反正就是要区分奇偶,才能知道那个结点最后要打印出-1.我看网上遇到的都是测试点3的问题,不过我有问题的是测试点1,前三个出问题就是节点数奇偶的问题。#include<bits/stdc++.h>usingnamespacestd;map<int,pair<int,int>>mp;intmain(){ ints......
  • WSL2 配置 tensorflow 环境
    Windows系统中更新NVIDA驱动这里可以直接通过GeforceExperience直接更新更新完成后可以在命令行/wsl中输入nvidia-smi可以看到输出这里的CUDAVersion指的是该驱动版本最高可支持的CUDA版本安装CUDA到NVIDIA官网下载符合条件的CUDA这里我一开始直接选择安装了最新版......
  • PTA L2-014 列车调度
    火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺......
  • PTA L2-013 红色警报
    战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报。输入格式:输入在第一行给出......
  • 牛客网Mysql相应试题 SQL28 计算用户8月每天的练题数量
    SQL28计算用户8月每天的练题数量描述题目:现在运营想要计算出2021年8月每天用户练习题目的数量,请取出相应数据。示例:question_practice_detailiddevice_idquestion_idresultdate12138111wrong2021-05-0323214112wrong2021-05-0933214113wrong2......
  • 实验一 邵铭修 202383310026
    task1}点击查看代码#include<stdio.h>intmain(){ printf("o\n"); printf("<H>\n"); printf("II\n"); printf("o\n"); printf("<H>\n"); printf("II\n"); return0;![](ht......
  • L2-014 列车调度
    法一:(23分)数组。有一个测试点会超时,每次第二层遍历是O(n)。#include<bits/stdc++.h>usingnamespacestd;inta[100010];intmain(){ intn,t,count=0; cin>>n; for(inti=0;i<n;i++){ cin>>t; boolflag=false; for(inti=0;i<count;i++){ if(a[i]>t......