首页 > 其他分享 >abc305_f (构造实现)

abc305_f (构造实现)

时间:2024-02-27 10:11:32浏览次数:60  
标签:一个点 vis abc305 dfs 实现 int 构造 105

首先考虑正常的怎么做,就是一遍dfs,是\(O(n)\)的,然而这题在到达每一个点时都要输出它的下一个点才能到达下一个点,同时看到这个\(2n\)觉得不对劲,自然想到走过去走回来,耗2n

代码实现还是有点东西的,走过去好搞,但走回来时怎么办呢。我们想到dfs是一个栈,所以在要退出时输出就可以了

#include<bits/stdc++.h>
using namespace std;
int n,m,k,x,v[105][105];
bool vis[105];
void dfs(int u,int from){
	if(u==n) exit(0);
	cin>>k;
	for(int i=1;i<=k;i++){
		cin>>v[u][i];
	}
	for(int i=1;i<=k;i++){
		if(vis[v[u][i]]==false){
			vis[v[u][i]]=true;
			cout<<v[u][i]<<endl;
			dfs(v[u][i],u);
			//vis[v[u][i]]=false;//已经去过就不用再去了
		}
	}
	cout<<from<<endl;
	cin>>k;
	for(int i=1;i<=k;i++){
		cin>>x;
	}
}
int main(){
	cin>>n>>m;
	vis[1]=true;
	dfs(1,0); 
	
	return 0;
}

标签:一个点,vis,abc305,dfs,实现,int,构造,105
From: https://www.cnblogs.com/wuhupai/p/18036292

相关文章

  • JavaScript 实现JSON 对象数组以某个属性进行分组处理
    JavaScript实现JSON对象数组以某个属性进行分组处理要在JavaScript中对JSON对象数组的某个属性进行分组处理,你可以使用一个对象来存储分组后的结果。下面是一个简单的示例,演示了如何对JSON对象数组中的某个属性进行分组处理:假设我们有一个JSON对象数组,每个对象都有ca......
  • 在K8S中,当Pod业务量比较大时候,如何实现水平伸缩和扩容?
    在Kubernetes中,当Pod的业务量比较大时,可以通过水平伸缩(HorizontalPodAutoscaling,HPA)和扩容(Scaling)来实现动态的资源管理。以下是实现水平伸缩和扩容的一些步骤和方法:1.水平伸缩(HorizontalPodAutoscaling,HPA)水平伸缩允许你根据一些指标(如CPU使用率、内存使用率、自定义......
  • [ABC314Ex] Disk and Segments题解(退火实现)
    一到比较水的退火题(虽然也调了3h)题意在平面直角坐标系中,有\(n\)条线段,第\(i\)条的端点是\((a_i,b_i)\)和$(c_i,d_i)$,任意线段不共点。(这里笔者为了方便会默认\(a_i<c_i\))你要在平面上画一个圆,使得任意一条线段都和圆周或圆内部有至少一个公共点,求满足条件的圆的最小......
  • Qt Virtual Keyboard C++集成与实现(QWidget)
    一.设置1.配置所需语言1).通过QtCreator配置打开Qt工程文件,点开左侧 Projects->Build->BuildSteps->qmake->Additionalarguments在 Additionalarguments 增加配置参数:CONFIG+="lang-ar_ARlang-da_DKlang-de_DElang-en_GBlang-es_ESlang-fa_FAlang-fi_FIlang-fr......
  • Qt Virtual Keyboard C++集成与实现(解决模态对话框键盘失效问题)
    一.Qt模态对话框先让我们来看看对话框的几种特性:1.Qt::NonModaThewindowisnotmodalanddoesnotblockinputtootherwindows.2.Qt::WindowModalThewindowismodaltoasinglewindowhierarchyandblocksinputtoitsparentwindow,allgrandparentwin......
  • 基于FPGA的图像双边滤波实现,包括tb测试文件和MATLAB辅助验证
    1.算法运行效果图预览  将FPGA数据导入到matlab对比测试: 2.算法运行软件版本vivado2019.2 matlab2022a 3.算法理论概述         双边滤波是一种非线性滤波方法,它能够在平滑图像的同时保持边缘的锐度。这一特性使得双边滤波在图像处理领域具有广泛的应......
  • 5-2. 滑铲的逻辑和动画的实现
    动画我们需要快速打断滑铲,所以没用结束滑铲动画状态机中,使用了isSlide这个布尔变量NewState->blueSlide0,需要isSlide=true,立即进入blueSlide0->blueSilde1,需要isSlide=true,完整播放一次之后进入当isSlide=false的时候,如果在blueSlide0或blueSlide1,就进......
  • R语言中实现广义相加模型GAM和普通最小二乘(OLS)回归
    原文链接:http://tecdat.cn/?p=20882 原文出处:拓端数据部落公众号 1导言这篇文章探讨了为什么使用广义相加模型 是一个不错的选择。为此,我们首先需要看一下线性回归,看看为什么在某些情况下它可能不是最佳选择。 2回归模型假设我们有一些带有两个属性Y和X的数据。如果它......
  • 5-1. 滑墙及蹬墙跳的实现
    滑墙的实现方式动画使用滑墙图片制作滑墙动画,只有一帧的动画动画状态机中,增加了onWall这个bool变量,以及blueWallSlide这个状态当onWall==true时,从Jump立即切换到blueWallSlide当onWall==false&&isGround==true时,从blueWallSlide立即切换到blueJump......
  • Qt Virtual Keyboard实现自适应悬浮键盘(多种方法详细记录)
    项目需求实现悬浮键盘,点击QLineEdit或QTextEdit自动弹出自适应悬浮键盘,尝试了以下几种方法后选择了修改QTVirtualKeyboard源码。在这里把其他方法/想法也列出来做一下记录。项目环境:QT5.13.2VS2017方法1:调用windows自带系统软件盘介绍windows自带软键盘分为......