当前位置: 首页 > news >正文

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

文章目录

  • 飞机降落
  • 仙境诅咒
  • 小怂爱水洼
  • 串变换

飞机降落

在这里插入图片描述
在这里插入图片描述
思路:贪心+暴搜。

#include<bits/stdc++.h>using namespace std;
const int N = 10;
int t,n;
//这题 N 比较小,可以用暴力搜搜复杂度是 T×N*N!
struct plane{int t,d,l;
}p[N];
bool vis[N];//用来记录每个飞机是否访问
bool dfs(int dep,int last){if(dep==n){//当枚举完所有飞机到叶子节点则说明有满足条件的情况。return true;//只要一个 true 所有都 true}for(int i=0;i<n;i++){//枚举每个飞机int t = p[i].t,d = p[i].d,l = p[i].l;if(!vis[i]&&t+d>=last){//没访问过并且上一架飞机将落后可以降落vis[i]=true;//标记访问if(dfs(dep+1,max(t,last)+l))return true;//需要判断极限条件是否成立vis[i]=false;//回溯还原}}return false;//只要一个 false 所有都 false
}int main( ){cin>>t;while(t--){cin>>n;for(int i=0;i<n;i++){cin>>p[i].t>>p[i].d>>p[i].l;}memset(vis, false, sizeof vis);//还原标志位if(dfs(0,0))puts("YES");else puts("NO");}return 0;
}

仙境诅咒

在这里插入图片描述
思路:图的 DFS

#include<bits/stdc++.h>
using namespace std;
int n,d;
const int N = 1e3+10;struct god{int x,y;
}gods[N];//输入每个神仙的坐标bool vis[N];//判断神仙是否中毒double dis(int i,int j){//求两个神仙间的欧式距离int x1 = gods[i].x,x2 = gods[j].x;int y1 = gods[i].y,y2 = gods[j].y;return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
//搜索以第 id 个中毒的神仙能感染周围哪些神仙
void dfs(int id){vis[id]=true;//标记第 id 个神仙中毒for(int i=0;i<n;i++){if(!vis[i]&&dis(id,i)<=d)dfs(i);//如果神仙没有搜索过,并且他在其他神仙的毒圈内,就需要以他为圆心进行搜索。}
}int main( ){cin>>n;for(int i=0;i<n;i++)cin>>gods[i].x>>gods[i].y;cin>>d;dfs(0);for(int i=0;i<n;i++)cout<<(vis[i]?"1":"0")<<'\n';return 0;
}

小怂爱水洼

在这里插入图片描述
在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int N = 1e2+5;
int n,m;
int vis[N][N],a[N][N];
typedef long long LL;
int dy[4]={0,1,0,-1};
int dx[4]={1,0,-1,0};
//在同一片水洼内搜索
void dfs(int x,int y,LL &sum){//保存新水洼的水量,并且设置已经访问过sum += 1ll*a[x][y];vis[x][y] = true;//向水洼四周搜索for(int i=0;i<=3;i++){int nx = dx[i]+x;int ny = dy[i]+y;//不能越界,不能访问过,并且要有水量,否则跳过该坐标if(nx<=0||nx>=n+1||ny<=0||ny>=m+1||!a[nx][ny]||vis[nx][ny])continue;dfs(nx,ny,sum);}
}
int main( ){cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];//输入矩阵}}long long result =0;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){LL sum = 0;dfs(i,j,sum);//对每个大水洼进行求和,ij 是水洼坐标,sum 存每个大水洼的水量和result = max(result,sum);//result 是总的最大的水洼}}cout<<result;return 0;
}

串变换

在这里插入图片描述

在这里插入图片描述
思路:数据范围k 为 7 用暴搜做。

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>using namespace std;const int N = 25;//数组的最大条件
int n,k;//串的长度为 n,操作次数 k
string s,t;//源串和目的串
int op[N],x[N],y[N];//操作数和操作码
vector<int> path;//用来存操作次序(全排列)
bool st[N];//用来记录是否访问过
bool res;//用来记录最后答案void update(){//得到全排列的值进行操作看是否能得到目的串string str = s;for(int i=0;i<path.size();i++){int j = path[i];int a = op[j],b = x[j], c = y[j];if(a==1){str[b] = (str[b] - '0' + c) % 10 + '0';}else swap(str[b],str[c]);}res |= str==t;
}void dfs(int u)
{if (u == k + 1){update();return;}//全排列代码for (int i = 1; i <= k; ++ i )if (!st[i]){st[i] = true;path.push_back(i);dfs(u + 1);path.pop_back();st[i] = false;}//防止搜索一些值,叶节点没搜索到dfs(k + 1);
}
int main()
{cin >> n >> s >> t >> k;for (int i = 1; i <= k; ++ i )cin >> op[i] >> x[i] >> y[i];dfs(1);cout << (res? "Yes": "No") << endl;return 0;
}

相关文章:

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

文章目录 飞机降落仙境诅咒小怂爱水洼串变换 飞机降落 思路&#xff1a;贪心暴搜。 #include<bits/stdc.h>using namespace std; const int N 10; int t,n; //这题 N 比较小&#xff0c;可以用暴力搜搜复杂度是 TN*N! struct plane{int t,d,l; }p[N]; bool vis[N];//用…...

ctfshow web入门 php特性总结

1.web89 intval函数的利用&#xff0c;intval函数获取变量的整数值&#xff0c;失败时返回0&#xff0c;空的数组返回&#xff0c;非空数组返回1 num[]1 intval ( mixed $var [, int $base 10 ] ) : int Note: 如果 base 是 0&#xff0c;通过检测 var 的格式来决定使用的进…...

Media Encoder 2024:未来媒体编码的新纪元 mac/win版

随着科技的飞速发展&#xff0c;媒体内容已成为我们日常生活中不可或缺的一部分。为了满足用户对高质量视频内容不断增长的需求&#xff0c;Media Encoder 2024应运而生&#xff0c;它凭借卓越的技术和创新的特性&#xff0c;重塑了媒体编码的未来。 Media Encoder 2024 mac/w…...

2024年AI辅助研发趋势:数智时代革新新引擎

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到我们生活的方方面面&#xff0c;而在软件开发领域&#xff0c;AI辅助研发正成为一股不可忽视的力量。本文将探讨2024年AI辅助研发的趋势&#xff0c;以及它如何成为数智时代革新的新引擎。 AI辅助研…...

2024年家政预约上门服务小程序【用户端+商家端+师傅端】源码

024最新家政预约上门服务小程序源码 主要功能:商家入住&#xff0c;师傅入住&#xff0c;缴纳保正金 支持师傅&#xff0c;抢单派单 支持多城市多门下单&#xff0c;支持预约上门服务到店核销 支持补差价义价&#xff0c;支持区域服务限制 基于thinkphp和原生小程序开发...

数据结构:静态链表(编程技巧)

链表的元素用数组存储&#xff0c; 用数组的下标模拟指针。 一、理解 如果有些程序设计语言没有指针类型&#xff0c;如何实现链表&#xff1f; 在使用指针类型实现链表时&#xff0c;我们很容易就可以直接在内存中新建一块地址用于创建下一个结点&#xff0c;在逻辑上&#x…...

python中的**可以表示什么??

在Python中&#xff0c;** 有两个主要的用途&#xff1a; 作为幂运算符&#xff1a;a ** b 表示a的b次方。例如&#xff0c;2 ** 3 会返回 8&#xff0c;因为2的3次方等于8。 在函数调用或定义时作为关键字参数的解包&#xff1a; 当你有一个字典&#xff0c;并且你想将这个字…...

使用 Git 跟踪项目文件

本章内容为&#xff1a;用Django 写学习笔记程序第三章.2部署程序摘录&#xff0c;详情内容查看请跳转下方链接&#xff1a; 用Django 写学习笔记程序第三章.2部署程序 文章目录 使用 Git 跟踪项目文件虚拟环境中安装 gitgit 是什么git 安装完成后的简单配置创建项目忽略文件初…...

C++从零开始(day47)——set,map学习使用

这是关于一个普通双非本科大一学生的C的学习记录贴 在此前&#xff0c;我学了一点点C语言还有简单的数据结构&#xff0c;如果有小伙伴想和我一起学习的&#xff0c;可以私信我交流分享学习资料 那么开启正题 今天分享的是关于set和map的知识点 1.关联式容器 在前面&#…...

手机和电脑同步的好用记事本软件有哪些

我常常需要随手记录各种信息&#xff0c;以便随时查阅和使用。比如&#xff0c;在下班路上&#xff0c;我会用手机记录明天要处理的工作事项、购物清单&#xff0c;或是某个突然迸发的创意想法&#xff1b;而在办公室&#xff0c;我则需要在电脑上整理会议纪要、项目计划&#…...

使用CSS制作动态的环形图/饼图

使用纯 CSS Animation conic-gradient 实现一个环形图。 饼图的实现思路和环形图一样&#xff0c;去掉中间的圆形遮盖 after 伪类元素即可。 一、构建基础样式 构建圆形节点和中间的遮盖元素。 <style>body {background-color: rgb(130, 226, 255);}.circle {top: 16…...

掌握React中的useEffect:函数组件中的魔法钩子

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

WPF 窗口添加投影效果Effect

BlurRadius&#xff1a;阴影半径 Color&#xff1a;颜色 Direction&#xff1a;投影方向 ShadowDepth&#xff1a;投影的深度 <Window.Effect><DropShadowEffect BlurRadius"10" Color"#FF858484" Direction"300" ShadowDepth&quo…...

Gitlab CICD 下载artifacts文件并用allure打开,或bat文件打开

allure命令行打开aritfacts报告 首先下载allure.zip&#xff0c;并解压 配置环境变量 使用命令行打开allure文件夹 allure open 2024-03-11-14-54-40 2024-03-11-14-54-40 包含index.html Bat文件打开artifacts There are 2 html reports in the download artifacts.zip S…...

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:NavRouter)

导航组件&#xff0c;默认提供点击响应处理&#xff0c;不需要开发者自定义点击事件逻辑。 说明&#xff1a; 该组件从API Version 9开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 必须包含两个子组件&#xff0c;其中第二个子组…...

Django环境下使用Ajax

Django环境下使用Ajax 目录 Django环境下使用Ajax介绍前情提要示例JS实现Ajax实现 传递JSON格式数据传递文件数据Django自带的序列化组件基于jsonresponse序列化数据基于Django自带的serializers 注册示例 介绍 AJAX 的主要目标是在不刷新整个页面的情况下&#xff0c;通过后台…...

官方安装配置要求服务器最低2核4G

官方安装配置要求服务器至少2核、4G。 如果服务器低于这个要求&#xff0c;就没有必要安装&#xff0c;因为用户体验超级差。 对于服务器CPU来说&#xff0c;建议2到4核就完全足够了&#xff0c;太多就浪费了&#xff0c;但是内存越大越好&#xff0c;最好是4G以上。 如果服务器…...

Apache的运用与实战

WEB服务器 1、WEB服务简介 # 目前最主流的三个Web服务器是Apache、Nginx、 IIS。 - WEB服务器一般指网站服务器&#xff0c;可以向浏览器等Web客户端提供网站的访问&#xff0c;让全世界浏览。 - WEB服务器也称为WWW(WORLD WIDE WEB)服务器&#xff0c;主要功能是提供网上信息…...

【漏洞复现】网康NS-ASG应用安全网关 index.php SQL注入漏洞(CVE-2024-2330)

0x01 产品简介 网康科技的NS-ASG应用安全网关是一款软硬件一体化的产品&#xff0c;集成了SSL和 IPSecQ&#xff0c;旨在保障业务访问的安全性&#xff0c;适配所有移动终端&#xff0c;提供多种链路均衡和选择技术&#xff0c;支持多种认证方式灵活组合&#xff0c;以及内置短…...

网络基础『 序列化与反序列化』

&#x1f52d;个人主页&#xff1a; 北 海 &#x1f6dc;所属专栏&#xff1a; Linux学习之旅、神奇的网络世界 &#x1f4bb;操作环境&#xff1a; CentOS 7.6 阿里云远程服务器 文章目录 &#x1f324;️前言&#x1f326;️正文1.协议的重要性2.什么是序列化与反序列化&…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》

&#x1f9e0; LangChain 中 TextSplitter 的使用详解&#xff1a;从基础到进阶&#xff08;附代码&#xff09; 一、前言 在处理大规模文本数据时&#xff0c;特别是在构建知识库或进行大模型训练与推理时&#xff0c;文本切分&#xff08;Text Splitting&#xff09; 是一个…...

从零开始了解数据采集(二十八)——制造业数字孪生

近年来&#xff0c;我国的工业领域正经历一场前所未有的数字化变革&#xff0c;从“双碳目标”到工业互联网平台的推广&#xff0c;国家政策和市场需求共同推动了制造业的升级。在这场变革中&#xff0c;数字孪生技术成为备受关注的关键工具&#xff0c;它不仅让企业“看见”设…...

ArcPy扩展模块的使用(3)

管理工程项目 arcpy.mp模块允许用户管理布局、地图、报表、文件夹连接、视图等工程项目。例如&#xff0c;可以更新、修复或替换图层数据源&#xff0c;修改图层的符号系统&#xff0c;甚至自动在线执行共享要托管在组织中的工程项。 以下代码展示了如何更新图层的数据源&…...

如何通过git命令查看项目连接的仓库地址?

要通过 Git 命令查看项目连接的仓库地址&#xff0c;您可以使用以下几种方法&#xff1a; 1. 查看所有远程仓库地址 使用 git remote -v 命令&#xff0c;它会显示项目中配置的所有远程仓库及其对应的 URL&#xff1a; git remote -v输出示例&#xff1a; origin https://…...