Acwing2024蓝桥杯BFS
AcWing 1355. 母亲的牛奶
bfs:
#include<iostream>
#include<queue>
using namespace std;
const int N=21;
int A,B,C;
bool flag[N][N][N];
struct node{int a,b,c;
};
queue<node>q;
void check(int a,int b,int c){if(!flag[a][b][c]){q.push({a,b,c});flag[a][b][c]=1;}
}
void bfs(){q.push({0,0,C});flag[0][0][C]=1;while(!q.empty()){auto t=q.front();q.pop();int a=t.a,b=t.b,c=t.c;check(a-min(a,B-b),min(a+b,B),c);check(a-min(a,C-c),b,min(a+c,C));check(min(a+b,A),b-min(b,A-a),c);check(a,b-min(b,C-c),min(c+b,C));check(min(a+c,A),b,c-min(c,A-a));check(a,min(b+c,B),c-min(c,B-b));}return ;
}
int main(){cin>>A>>B>>C;bfs();for(int c=0;c<=C;c++){for(int b=0;b<=B;b++){if(flag[0][b][c]){cout<<c<<" ";break;}}}return 0;
}
dfs:
#include<iostream>
using namespace std;
const int N=21;
int A,B,C;
bool flag[N][N][N];
void dfs(int a,int b,int c){if(flag[a][b][c]) return;flag[a][b][c]=1;dfs(a-min(a,B-b),min(a+b,B),c);dfs(a-min(a,C-c),b,min(a+c,C));dfs(min(a+b,A),b-min(b,A-a),c);dfs(a,b-min(b,C-c),min(c+b,C));dfs(min(a+c,A),b,c-min(c,A-a));dfs(a,min(b+c,B),c-min(c,B-b));return ;
}
int main(){cin>>A>>B>>C;dfs(0,0,C);for(int c=0;c<=C;c++){for(int b=0;b<=B;b++){if(flag[0][b][c]){cout<<c<<" ";break;}}}return 0;
}
AcWing 844. 走迷宫
#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
const int N=110;
int n,m;
typedef pair<int,int>pii;
int mapp[N][N],d[N][N];
int bfs(){memset(d,-1,sizeof d);d[1][1]=0;queue<pii>q;q.push({1,1});int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};while(q.size()){auto t=q.front();q.pop();for(int i=0;i<4;i++){int x=t.first+dx[i],y=t.second+dy[i];if(x>=1&&x<=n&&y>=1&&y<=m&&d[x][y]==-1&&mapp[x][y]==0){d[x][y]=d[t.first][t.second]+1;q.push({x,y});}}}return d[n][m];
}
int main(){cin>>n>>m;for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>mapp[i][j];cout<<bfs()<<endl;return 0;
}
AcWing 845. 八数码
STL:unordered_map+bfs:
#include<iostream>
#include<unordered_map>
#include<queue>
using namespace std;
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
int bfs(string startt){string last="12345678x";//目标转态queue<string>q;//将字符串和数字联系在一起,字符串表示状态,数字表示距离unordered_map<string,int>d;//初始化q.push({startt});d[startt]=0;while(!q.empty()){auto t=q.front();//记录转态q.pop();int dist=d[t];//记录距离if(t==last) return dist;///终止状态//查找x在字符串中的下标,后转换为在矩阵中的坐标int k=t.find('x');int x=k/3,y=k%3;for(int i=0;i<4;i++){int xx=x+dx[i],yy=y+dy[i];if(xx>=0&&xx<3&&yy>=0&&yy<3){swap(t[k],t[xx*3+yy]);//交换,得到下一种状态if(!d.count(t)){//如果当前状态是第一次遍历,记录距离,入队d[t]=dist+1;q.push({t});}swap(t[k],t[xx*3+yy]);//还原状态}}}return -1;
}
int main(){string s;for(int i=0;i<9;i++){char ch;cin>>ch;s+=ch;}cout<<bfs(s)<<endl;return 0;
}
AcWing 1233. 全球变暖(第九届省赛)
这题在这篇文章里有具体写:
三.搜索与图论(未完结)-CSDN博客
#include<iostream>
using namespace std;
const int N=1005;
char a[N][N],b[N][N];
int n,res,ans;
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
void dfs_all(int x,int y){b[x][y]='.';if(b[x-1][y]=='.'&&x-1>=0&&x-1<n&&y>=0&&y<n){if(b[x][y+1]=='.'&&x>=0&&x<n&&y+1>=0&&y+1<n){if(b[x+1][y]=='.'&&x+1>=0&&x+1<n&&y>=0&&y<n){if(b[x][y-1]=='.'&&x>=0&&x<n&&y-1>=0&&y-1<n){return ;}}}}for(int i=0;i<4;i++){int xx=x+dx[i],yy=y+dy[i];if(b[xx][yy]=='#'){dfs_all(xx,yy);}}
}
void dfs_rest(int x,int y){a[x][y]='.';if(a[x-1][y]=='.'&&x-1>=0&&x-1<n&&y>=0&&y<n){if(a[x][y+1]=='.'&&x>=0&&x<n&&y+1>=0&&y+1<n){if(a[x+1][y]=='.'&&x+1>=0&&x+1<n&&y>=0&&y<n){if(a[x][y-1]=='.'&&x>=0&&x<n&&y-1>=0&&y-1<n){return ;}}}}for(int i=0;i<4;i++){int xx=x+dx[i],yy=y+dy[i];if(a[xx][yy]=='*'||a[xx][yy]=='#'){dfs_rest(xx,yy);}}
}
int main(){cin>>n;for(int i=0;i<n;i++) for(int j=0;j<n;j++) {cin>>a[i][j];b[i][j]=a[i][j];}for(int i=0;i<n;i++) for(int j=0;j<n;j++) if(b[i][j]=='#') {dfs_all(i,j);res++;}for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(a[i][j]=='.'){for(int k=0;k<4;k++){int x=i+dx[k],y=j+dy[k];if(a[x][y]=='#') a[x][y]='*';}}}}for(int i=0;i<n;i++) for(int j=0;j<n;j++) if(a[i][j]=='#') {dfs_rest(i,j);ans++;}cout<<res-ans<<endl;return 0;
}相关文章:
Acwing2024蓝桥杯BFS
AcWing 1355. 母亲的牛奶 bfs: #include<iostream> #include<queue> using namespace std; const int N21; int A,B,C; bool flag[N][N][N]; struct node{int a,b,c; }; queue<node>q; void check(int a,int b,int c){if(!flag[a][b][c]){q.push({a,b,c})…...
vue打包报错:CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
前言: vue项目,打包报错:CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 报错现象: 报错原因: 这个错误是由Node.js在尝试分配内存时因为系统的可用内存不足而发生的。"JavaScript heap…...
计算机组成原理网课笔记
无符号整数的表示与运算 带符号整数的表示与运算 原反补码的特性对比 移码 定点小数...
Python学习第四部分 函数式编程
文章目录 高阶函数lambda 表达式和匿名函数偏函数闭包map函数reduce函数filter 函数sorted函数 函数式编程主要学习:高阶函数、闭包closure、匿名函数、偏函数,map函数、reduce函数、filter函数、sorted函数 函数式编程是个很古老的概念,最古…...
数据结构-二叉树-AVL树(平衡二叉树)
红黑树是平衡二叉树的一个变种。 一、 产生平衡二叉树的原因。 二叉搜索树的问题在于极端场景下退化为类似链表的结构,所以搜索的时间复杂度就变成了O(N)。为了保证二叉树不退化为链表,我们必须保证二叉树的的平衡性。 二叉平衡搜索树就是解决上面的问…...
【Qt问题】windeployqt如何提取Qt依赖库
往期回顾 【Qt问题】Qt Creator 如何链接第三方库-CSDN博客 【Qt问题】Qt 如何带参数启动外部进程-CSDN博客 【Qt问题】VS2019 Qt win32项目如何添加x64编译方式-CSDN博客 【Qt问题】windeployqt如何提取Qt依赖库 考虑这个问题主要是:当我们的程序运行好之后&#…...
VS2019下使用MFC完成科技项目管理系统
背景: (一)实验目的 通过该实验,使学生掌握windows程序设计的基本方法。了解科技项目组织管理的主要内容和管理方面的基本常识,熟练应用数据库知识,通过处理过程对计算机软件系统工作原理的进一步理解&…...
【Android】Kotlin学习之数据容器(数组for循环遍历)
数组遍历 1. for ( item in arr){…} 2. for ( i in arr.indeces ) {…} (遍历下标) 3. for ((index, item) in arr.withInfex()) {…} (遍历下标和元素) 4. arr.forEach {} ( 遍历元素 ) 5. arr.forEachIndexed{index, item -> …}...
JavaWeb_请求响应_简单参数实体参数
一、SpringBoot方式接收携带简单参数的请求 简单参数:参数名与形参变量名相同,定义形参即可接收参数。并且在接收过程中,会进行自动的类型转换。 启动应用程序后,在postman中进行测试: 请求成功,响应回了O…...
windows端口复用
1. 概述 使用 HTTP.sys 中的 Net.tcp Port Sharing 服务,配合 WinRM 实现端口复用。 优点: HTTP.sys 为 windows 原生机制, WinRM 为 windows 自带功能,动作较小,不易触发主 动防御。 需要管理员权限。 2. 原理 (…...
[Redis] 使用布隆过滤器和分布式锁实现用户注册
布隆过滤器(Bloom Filter)是一种数据结构,用于快速判断一个元素是否可能存在于一个集合中。它通过使用多个哈希函数和一个位数组来表示一个集合,当一个元素被加入到集合时,通过哈希函数计算出多个哈希值,并…...
Okhttp 发送https请求,忽略ssl认证
工具类 import lombok.extern.slf4j.Slf4j;import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; import javax.net.ssl.TrustManagerFactory; import javax.net.ssl.X509Tru…...
IT项目管理-大题【太原理工大学】
一、根据进度网络写出时间参数表、关键路径、总工期 此类题一般是给一个表,问三问。 第一问会问某个活动的时间参数,但我们需要把整个表都求出来,否则单求一个很困难(如果你就是不想求整张表也行,不是硬性要求…...
【代码随想录】day48
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、198打家劫舍二、213打家劫舍II三、337打家劫舍III 一、198打家劫舍 class Solution { public:int rob(vector<int>& nums) {vector<int> dp(n…...
【补充】1-auth的使用、扩写auth的user表、django支持缓存
1 Auth的使用 1.1 扩写auth的user表 2 缓存 1 Auth的使用 # django 的一个app---》用户的登录,退出,注册。。。# 配置文件中配置:---》表会被迁移INSTALLED_APPS [django.contrib.auth,]# auth有哪些表---权限控制:-Permission&a…...
力扣-21. 合并两个有序链表-js实现
/*** Definition for singly-linked list.* function ListNode(val, next) {* this.val (valundefined ? 0 : val)* this.next (nextundefined ? null : next)* }*/ /*** param {ListNode} list1* param {ListNode} list2* return {ListNode}*/ const mergeTwoList…...
tensorflow报错
参考 TensorFlow binary is optimized to use available CPU instructions in performance-critical operations._this tensorflow binary is optimized to use availab-CSDN博客 解决Python中cuBLAS插件无法注册问题_unable to register cudnn factory: attempting to re-CS…...
企业数字化转型走向平台化运营会经历哪些阶段?
蚓链实践总结企业数字化转型走向平台化运营通常会经历以下几个阶段: 1. 规划与准备阶段:明确转型目标和战略,评估现有业务和技术状况,制定转型计划。 2. 基础建设阶段:搭建数字化基础设施,包括云平台、数…...
最新AI实景自动无人直播软件教你实现24小时不下播带货;智能化引领直播新时代
随着互联网的快速发展,直播行业已经成为商家品牌推广和商品销售的热门方式。而如今,一款令人惊叹的AI实景自动无人直播软件正在让直播变得更加智能化和便捷化,为商家带来全新的直播体验。 AI实景自动无人直播软件的一大优势是其智能讲解功能。…...
《二十一》QT QML编程基础
QML概述 QML(Qt Meta-Object Language)是一种声明性语言,它被用于描述Qt框架中用户界面的结构和行为。QML提供了一种简洁、灵活的方式来创建动态和交互式的界面。 QML基于JavaScript语法,通过使用QML类型和属性来定义界面的元素…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
统计学(第8版)——统计抽样学习笔记(考试用)
一、统计抽样的核心内容与问题 研究内容 从总体中科学抽取样本的方法利用样本数据推断总体特征(均值、比率、总量)控制抽样误差与非抽样误差 解决的核心问题 在成本约束下,用少量样本准确推断总体特征量化估计结果的可靠性(置…...
RocketMQ 客户端负载均衡机制详解及最佳实践
延伸阅读:🔍「RocketMQ 中文社区」 持续更新源码解析/最佳实践,提供 RocketMQ 专家 AI 答疑服务 前言 本文介绍 RocketMQ 负载均衡机制,主要涉及负载均衡发生的时机、客户端负载均衡对消费的影响(消息堆积/消费毛刺等…...
MySQL 数据库深度剖析:事务、SQL 优化、索引与 Buffer Pool
在当今数据驱动的时代,数据库作为数据存储与管理的核心,其性能与可靠性至关重要。MySQL 作为一款广泛使用的开源数据库,在众多应用场景中发挥着关键作用。在这篇博客中,我将围绕 MySQL 数据库的核心知识展开,涵盖事务及…...
Steam爬取相关游戏评测
## 因为是第一次爬取Steam。所以作为一次记录发出;有所错误欢迎指出。 无时间指定爬取 import requests import time import csv import osappid "553850" # 这里你也可以改成 #appid int(input()) max_reviews 10000 # 想爬多少条 # max_reviews…...
matlab模糊控制实现路径规划
路径规划是机器人和自动驾驶系统中的重要问题之一,它涉及确定如何在给定环境中找到最优路径以达到特定目标。模糊控制是一种有效的控制方法,可以应用于路径规划问题。 路径规划算法的目标是在避免障碍物的情况下,找到机器人或车辆从起点到终…...
