蓝桥杯倒计时 36天-DFS练习2

文章目录

  • 黄金二叉树
  • 混沌之力2

黄金二叉树

在这里插入图片描述
在这里插入图片描述
思路一:递推做法

#include<bits/stdc++.h>
using namespace std;const int N = 1e5+10;int A[N];
int B[N];
int n,sum;int main( ){cin>>n;for(int i=1;i<=n;i++)cin>>A[i];int left,right;for(int i=1;i<=n;i++){cin>>left;cin>>right;if(left>0)B[left]=B[i]+1;//如果节点 i 有左子节点,计算左子节点的黄金指数if(right>0)B[right]=B[i]-1;//如果节点 i 有右子节点,计算左子节点的黄金指数if(B[i]==0)sum+=A[i];//如果节点 i 黄金指数 为 0,将权重加起来}cout<<sum;
}

思路二:利用 dfs 来搜索整个二叉树,黄金指数为 0,则求和权值。

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int n;
int w[N],l[N],r[N];int dfs(int u,int j,int k){int res = (j == k) ? w[u] : 0; //如果黄金指数为 0,加入权值if(l[u]!=-1)res += dfs(l[u],j+1,k);//如果有左节点,搜索左节点,黄金指数+1。if(r[u]!=-1)res += dfs(r[u],j,k+1);//如果有右节点,搜索右节点,黄金指数+1。return res;
}int main( ){cin>>n;for(int i=1;i<=n;i++)cin>>w[i];for(int i=1;i<=n;i++)cin>>l[i]>>r[i];cout<<dfs(1,0,0)<<'\n';return 0;
}

混沌之力2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
思路:利用染色算法,把与源点能到达的点的颜色涂为 1,把与终点能到达的点的颜色涂为 2。如果终点颜色为 1 说明有路径。如果颜色不同,一个墙的四周有一个 1,一个 2,则把它破掉就能存在一个路径。通过 0|1=1,0|2=2,1|2=3来遍历四周来看是否符合条件的墙,涂色利用 dfs 来涂。

#include<bits/stdc++.h>
using namespace std;
const int N = 1e3+10;
int n,m;
int x,y,x2,y2;
char mp[N][N];
int dx[ ]={1,0,-1,0},dy[ ] = {0,1,0,-1};
int colors[N][N];
//涂色
void dfs(int x,int y,int color){colors[x][y]=color;for(int i=0;i<4;i++){int nx = dx[i]+x,ny = dy[i]+y;if(nx<0||nx>=n||ny<0||ny>=m||colors[nx][ny]||mp[nx][ny]=='#')continue;dfs(nx,ny,color);}
}
//判断是否墙的四周至少有一个 1,一个 2
bool check(int x,int y){int color = 0;for(int i=0;i<4;i++){int nx = dx[i]+x,ny = dy[i]+y;if(nx<0||nx>=n||ny<0||ny>=m)continue;color |= colors[nx][ny];}return color == 3;
}
int main( ){cin>>n>>m;cin>>x>>y>>x2>>y2;x--,y--,x2--,y2--;for(int i=0;i<n;i++)cin>>mp[i];dfs(x,y,1);//源点能直接到达终点if(colors[x2][y2]==1){puts("Yes"),return 0;}//输出后一定要 return 返回dfs(x2,y2,2);for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(mp[i][j]=='#'){//墙是否间隔源点和终点if(check(i,j)){puts("Yes"),return 0;//输出后一定要 return 返回}}}}//没有符合条件的答案puts("No");return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/730960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用Python爬取古诗文网的各类古诗

fetch-gushiwen 用途 可以拿去用于个人知识库、知识图谱的创建等其他学习用途。 使用 输入古诗文网的链接&#xff0c;即可爬取该页面所有诗歌的诗名&#xff0c;作者&#xff0c;朝代&#xff0c;内容&#xff0c;译文&#xff0c;注释&#xff0c;赏析&#xff0c;创作背…

[MRCTF2020]Transform1

a[33]"9,10,15,23,7,24,12,6,1,16,3,17,32,29,11,30,27,22,4,13,19,20,21,2,25,5,31,8,18,26,28,14" b[33]"103,121,123,127,117,43,60,82,83,121,87,94,93,66,123,45,42,102,66,126,76,87,121,65,107,126,101,60,92,69,111,98,77" python代码 a3 [103…

前端实现一个绕圆心转动的功能

得知了转换关系&#xff0c;我们就可以定义一个变量 angle 来表示我们这个 div 做圆周运动时绕圆心转过的角度&#xff0c;则弧度&#xff08;radian&#xff09; 为 radian &#xff08;angle*π&#xff09;/180 我们先在草稿纸上演练一遍我们的逻辑是否可行。让我们先准备一…

2024蓝桥杯每日一题(差分)

一、第一题&#xff1a;空调 解题思路&#xff1a;差分 希望P减掉T后就相当于从0到New_P&#xff0c;想到得到New_P只需要对全0数组进行若干次区间加操作&#xff0c;所以只需要对New_P数组进行差分&#xff0c;累加正数和负数&#xff0c;哪个绝对值大答案就是那个。 …

数据库安全的重要性

数据库作为信息系统的核心&#xff0c;不仅承载着海量的关键数据&#xff0c;还负责向各类用户提供高效、可靠的信息服务。在网络技术高度发展的今天&#xff0c;数据库的安全性显得尤为关键。为了防范不法分子的攻击&#xff0c;维护数据完整性和可靠性&#xff0c;数据库安全…

【Windows】VMware虚拟机应用(二):安装ubuntu-14.04.4

一、下载安装包 ubuntu-14.04.4-server-amd64.iso 注&#xff1a;因为我是用已有的安装包&#xff0c;所以&#xff0c;这里就不写下载步骤了。 二、安装引导 以管理员身份运行 VMware Workstation Pro 注&#xff1a;如果不是管理员身份运行&#xff0c;在安装系统时会出现…

二叉搜索树:查找+插入+删除+性能分析

文章目录 一、搜索树1.二叉搜索树的查找2.二叉搜索树的插入3.二叉搜索树的删除4.性能分析 一、搜索树 二叉搜素树 &#xff08; 二叉排序树 ) 1.要么是空树 2.如果左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值 3.如果右子树不为空&#xff0c;则右子树上所…

7款前端实战型项目特效分享(附在线预览)

分享7款实用性的前端动画特效 其中有canvas特效、css动画、svg动画等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 CSS春节灯笼特效 基于CSS实现的灯笼特效 灯笼会朝左右两个方向来回的摆动着 以下效果图只能体现…

关于Vue3的一些操作

1. 设置浏览器自动打开 在package.json 中设置 dev: vite --open 2.给src文件夹配置别名 在vite.config.ts配置文件中添加以下内容 3. 如果2中有红色波浪线的问题 ***安装一个文件包***npm install types/node3. 在tsconfig.json配置文件中&#xff0c;找到配置项compi…

Windows下Node.js安装保姆级教程

一、Node.js 下载 访问Node.js官网&#xff0c;点击下载Node.js 下载完成后即可在下载文件中查看安装包 二、安装 一&#xff09;点击安装包开始安装&#xff0c;进入Weclcome界面点击Next 二&#xff09;勾选同意协议&#xff0c;点击Next 三&#xff09;根据需要选择安装路…

Open CASCADE学习|表面着色显示模型

模型表面着色具有如下作用&#xff1a; 视觉增强&#xff1a;通过为模型表面添加着色&#xff0c;可以使其更加生动和逼真&#xff0c;提高视觉体验。 信息区分&#xff1a;在复杂的模型中&#xff0c;不同的部分或组件可能需要通过不同的颜色来区分&#xff0c;以便更清晰地…

简介maven核心:pom项目对象模型

Maven Maven 意思是知识的积累者&#xff0c;最初是为了简化 Jakarta Turbine 项目中的构建过程。有几个项目&#xff0c;每个项目都有自己的 Ant 构建文件&#xff0c;它们都略有不同。JAR 被检入 CVS。我们想要一种标准的方式来构建项目&#xff0c;清楚地定义项目的组成&am…

Redis缓存预热-缓存穿透-缓存雪崩-缓存击穿

什么叫缓存穿透? 模拟一个场景: 前端用户发送请求获取数据,后端首先会在缓存Redis中查询,如果能查到数据,则直接返回.如果缓存中查不到数据,则要去数据库查询,如果数据库有,将数据保存到Redis缓存中并且返回用户数据.如果数据库没有则返回null; 这个缓存穿透的问题就是这个…

电力物联网系统设计

电力物联网系统设计 简介 在新能源行业从业多年&#xff0c;参与和负责过大大小小的的项目&#xff0c;发电侧、电网侧、用户侧系统都有过实际的项目经验&#xff0c;这些项目或多或少都有物联网采集方面的需求&#xff0c;本篇文章将会对电力行业物联网经验做一个总结分享。 …

【Spring知识体系】1.1 Java 注解(Annotation)

文章目录 1.1 注解&#xff08;Annotation&#xff09;1.1.1 什么是注解1.1.2 内置注解1.1.3 元注解&#xff08;5种&#xff09;1.14 自定义注解1.15 注解使用场景介绍※ 本文小结 1.1 注解&#xff08;Annotation&#xff09; 1.1.1 什么是注解 注解的定义&#xff1a;它提…

基于工业边缘网关的机械状态监测与故障诊断应用

机械设备工作于各种各样的环境&#xff0c;在运行过程中必然受到力、温度、摩擦等多种物理、化学作用,使机械设备状态和性能变化,进而产生“隐性故障”。随着机械设备“隐性故障”的长期累积&#xff0c;可能造成设备损伤损坏&#xff0c;甚至影响系统整体生产和运营&#xff0…

从零开始学习Diffusion Models: Sharon Zhou

How Diffusion Models Work 本文是 https://www.deeplearning.ai/short-courses/how-diffusion-models-work/ 这门课程的学习笔记。 文章目录 How Diffusion Models WorkWhat you’ll learn in this course [1] Intuition[2] SamplingSetting Things UpSamplingDemonstrate i…

帮管客 CRM jiliyu SQL注入漏洞复现

0x01 产品简介 帮管客CRM是一款集客户档案、销售记录、业务往来等功能于一体的客户管理系统。帮管客CRM客户管理系统,客户管理,从未如此简单,一个平台满足企业全方位的销售跟进、智能化服务管理、高效的沟通协同、图表化数据分析帮管客颠覆传统,重新定义企业管理系统。 …

乐得瑞的一拖二100W智能分配方案更加成熟

在快节奏的现代生活中&#xff0c;手机不仅是通讯工具&#xff0c;更是我们工作、学习和娱乐的得力助手。然而&#xff0c;手机的电量问题一直是困扰我们的难题。为了解决这一问题&#xff0c;市场上应运而生了一种名为“一拖二快充线”的充电设备。它集快速充电与独特设计于一…

ADS功分器模型含义

ADS功分器模型含义 文章目录 ADS功分器模型含义dbpolar和单个值polar和单个值polar和dbpolar单个值 S21和S31传输系数 S11和S22反射系数 Isolation 隔离度 Zref 端口的参考阻抗&#xff0c;默认为50Ω CheckPassivity 检查是否无源&#xff0c;默认是无源器件 目前根据仿真结…