1/20赛后总结

1/20赛后总结

T1『讨论区管理员』的旅行 - BBC编程训练营

算法:IDA*

分数:0

damn it!

Ac_code走丢了~~(主要是没有写出来)~~

T2华强买瓜 - BBC编程训练营

算法:双向DFS或者DFS剪枝

分数:0

Ac_code:

#include<bits/stdc++.h>
using namespace std;
int n,m,a[35],ans=INT_MAX;
unordered_map<int,int> mp;
//乘以2以避免除以2的问题
void dfs1(int step,int sum,int num){//从起始条件进行DFS(劈第1~n/2个瓜)
//step:劈到了第几个瓜、sum:劈了多少斤的瓜、num:劈了几个瓜if(step==n/2+1){if(mp.count(sum))mp[sum]=min(num,mp[sum]);//保证答案最优else mp[sum]=num;//记录答案return;}if(sum>m*2) return;//如果那的瓜过多,那就退出dfs1(step+1,sum+a[step]*2,num);//不劈直接拿dfs1(step+1,sum+a[step],num+1);//批了拿一半dfs1(step+1,sum,num);//不劈不拿
}
void dfs2(int step,int sum,int num){//从最终条件进行DFS(劈第n/2+1~n个瓜)if(mp.count(m*2-sum)!=0/*两边的DFS的和可行就纪录*/)ans=min(ans,num+mp[m*2-sum]);//答案可行就记录if(step==n+1/*如果打算劈n+1个瓜时退出*/||num>ans/*如果答案不够优就不再进行*/)return;dfs2(step+1,sum+a[step]*2,num);//不劈直接拿dfs2(step+1,sum+a[step],num+1);//批了拿一半dfs2(step+1,sum,num);//不劈不拿
}
int main(){cin>>n>>m;for(int i=1;i<=n;i++)cin>>a[i];sort(a+1,a+n+1);dfs1(1,0,0);//从起始条件进行DFS(劈第1~n/2个瓜)dfs2(n/2+1,0,0);//从最终条件进行DFS(劈第n/2+1~n个瓜)if(ans==INT_MAX)cout<<"Huaqiang is about to strike you !";else cout<<ans;return 0;
}

T3花花的桃花源记 - BBC编程训练营

算法:BFS优化

分数:0

Ac_code:

#include<bits/stdc++.h>
using namespace std;
struct node {int x,y;int t;int l;//是否拥有举世无双HJM很剑 
} st,ed;
bool operator <(node x,node y) {return x.t>y.t;
}
priority_queue<node>q;
int n,m;
char a[1005][1005];
int dx[5]= {0,0,0,1,-1};
int dy[5]= {0,1,-1,0,0};
int vis[1005][1005][2];
int chuan[2];
void check(node v){if(vis[v.x][v.y][v.l]>v.t){//保证出现在队列过的是最优解 vis[v.x][v.y][v.l]=v.t; q.push(v);//放入队列 }
}
void jian(node v){if(chuan[v.l])	return ;chuan[v.l]=1;//在有举世无双HJM很剑和没举世无双HJM很剑时,只要传送一次就是最优的 v.t+=1;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++) {if(a[i][j]!='X') continue;//不是间隙就不传送check({i,j,v.t,v.l});//如果是间隙,那检查传送时是否最优 }}
}
int bfs() {q.push({st.x,st.y,0,0});while(!q.empty()) {node t=q.top();q.pop();if(t.x==ed.x&&t.y==ed.y)	return t.t;//到达祭台 for(int i=1; i<=4; i++) {int nx=dx[i]+t.x;int ny=dy[i]+t.y;//向四个方向扩展 if(nx<1||ny<1||nx>n||ny>m)	continue;//判断是否出界node v=t;v.x=nx,v.y=ny;char ta=a[nx][ny];if(ta=='0'){//空地 v.t+=1;check(v);}else if(ta=='1'){//墙 if(v.l==1){//有剑a[nx][ny]=0;v.t+=1;check(v);}	}else if(ta=='2'){//Ultra怪(不用考虑是否会再生)if(v.l==1)	v.t+=1;else v.t+=3;check(v);}else if(ta=='3'){//Super怪 if(v.l==1)	v.t+=1;else v.t+=11;check(v);}else if(ta=='4'){//举世无双HJM很剑 v.t+=1;check(v);if(!v.l) v.l=1,v.t+=4;check(v);}else if(ta=='5'){//栈道 if(v.l==0){v.t+=1;check(v);}}else if(ta=='X'){//间隙 v.t+=1;check(v);jian(v);}}}return -1;}
void solve() {while(!q.empty())	q.pop();//清空队列memset(vis,0,sizeof vis);memset(a,0,sizeof a);memset(chuan,0,sizeof chuan);memset(vis,0x3f,sizeof vis);//求最小值,故memset为0x3f3f3f3f//多测不清空,亲人两行泪 cin>>n>>m;for(int i=1; i<=n; i++) {char ch=getchar();for(int j=1; j<=m; j++) {a[i][j]=getchar();if(a[i][j]=='S')	st.x=i,st.y=j,a[i][j]='0';//起点可多次经过 else if(a[i][j]=='E')	ed.x=i,ed.y=j,a[i][j]='0'; }}int tmp=bfs();if(tmp!=-1)	cout<<tmp<<endl; else cout<<"Maybe Next Time"<<endl;
}
int main(){int T;cin>>T;while(T--)		solve();return 0;
}

T4Squars - BBC编程训练营

算法:DFS剪枝

分数:33(骗的)

Ac_code走丢啦(主要是写不出来

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

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

相关文章

蓝桥杯算法日常|c\c++常用竞赛函数总结备用

一、字符处理相关函数 大小写判断函数 islower和isupper&#xff1a;是C标准库中的字符分类函数&#xff0c;用于检查一个字符是否为小写字母或大写字母&#xff0c;需包含头文件cctype.h&#xff08;也可用万能头文件包含&#xff09;。返回布尔类型值。例如&#xff1a; #…

微服务知识——4大主流微服务架构方案

文章目录 1、微服务聚合模式2、微服务共享模式3、微服务代理模式4、微服务异步消息模式 微服务是大型架构的必经之路&#xff0c;也是大厂重点考察对象&#xff0c;下面我就重点详解4大主流微服务架构方案。 1、微服务聚合模式 微服务聚合设计模式&#xff0c;解决了如何从多个…

【HTML+CSS】使用HTML与后端技术连接数据库

目录 一、概述 1.1 HTML前端 1.2 后端技术 1.3 数据库 二、HTML表单示例 三、PHP后端示例 3.1 连接数据库 3.2 接收数据并插入数据库 四、安全性 4.1 防止SQL注入 4.2 数据验证与清洗 五、优化 5.1 索引优化 5.2 查询优化 六、现代Web开发中的最佳实践 6.1 使用…

cadence笔记--画PMU6050原理图和封装

简介 本文主要介绍使用Cadence自己画一个PMU6050的原理图PCB的实际用例&#xff0c;Cadence使用的是24.1版本。 原理图 首先获取PMU6050引脚参数&#xff0c;使用立创商城查询PMU6050型号&#xff0c;点击数据手册如下图所示&#xff1a; 如下图所示&#xff0c;左边是原理图&…

Text2SQL 智能报表方案介绍

0 背景 Text2SQL智能报表方案旨在通过自然语言处理&#xff08;NLP&#xff09;技术&#xff0c;使用户能够以自然语言的形式提出问题&#xff0c;并自动生成相应的SQL查询&#xff0c;从而获取所需的数据报表&#xff0c;用户可根据得到结果展示分析从而为结论提供支撑&#…

FFmpeg音视频采集

文章目录 音视频采集音频采集获取设备信息录制麦克风录制声卡 视频采集摄像机画面采集 音视频采集 DirectShow&#xff08;简称DShow&#xff09;是一个Windows平台上的流媒体框架&#xff0c;提供了高质量的多媒体流采集和回放功能&#xff0c;它支持多种多样的媒体文件格式&…

【漫话机器学习系列】056.F1值(F1 score)

F1值&#xff08;F1 Score&#xff09; 定义 F1值是机器学习中一种用于评估模型性能的指标&#xff0c;特别适合用于 不平衡数据集 的分类任务。它是 精确率&#xff08;Precision&#xff09; 和 召回率&#xff08;Recall&#xff09; 的调和平均值。通过综合考虑精确率和召…

Mac安装Homebrew

目录 安装修改homeBrew源常用命令安装卸载软件升级软件相关清理相关 安装 官网 https://brew.sh/不推荐官网安装方式&#xff08;很慢很慢或者安装失败联网失败&#xff09; 检测是否安装homebrewbrew -v执行安装命令 苹果电脑 常规安装脚本 &#xff08;推荐 完全体 几分钟就…

一文大白话讲清楚webpack基本使用——9——预加载之prefetch和preload以及webpackChunkName的使用

文章目录 一文大白话讲清楚webpack基本使用——9——预加载之prefetch和preload1. 建议按文章顺序从头看&#xff0c;一看到底&#xff0c;豁然开朗2. preload和prefetch的区别2. prefetch的使用3. preload的使用4. webpackChunkName 一文大白话讲清楚webpack基本使用——9——…

【Elasticsearch 】 聚合分析:桶聚合

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

tensorflow源码编译在C++环境使用

https://tensorflow.google.cn/install/source?hlzh-cn查看tensorflow和其他需要下载软件对应的版本&#xff0c;最好一模一样 1、下载TensorFlow源码 https://github.com/tensorflow/tensorflow 2、安装编译protobuf&#xff08;3.9.2&#xff09; protobuf版本要和TensorFlo…

使用 F12 查看 Network 及数据格式

在浏览器中&#xff0c;F12 开发者工具的 “Network” 面板是用于查看网页在加载过程中发起的所有网络请求&#xff0c;包括 API 请求&#xff0c;以及查看这些请求的详细信息和响应数据的。以下以常见的 Chrome 浏览器为例&#xff0c;介绍如何使用 F12 控制台查看 Network 里…

Redis 2.6.12在Win10系统上的安装教程

诸神缄默不语-个人CSDN博文目录 这个版本的安装包是跟同事要的&#xff0c;em&#xff0c;如果真的需要这个版本的话可以跟我要&#xff1a; 解压后双击第一个bat文件&#xff0c;即可挂起Redis服务&#xff1a;

分布式数据库中间件(DDM)的使用场景

华为云分布式数据库中间件&#xff08;DDM&#xff09;是一款专注于解决数据库分布式扩展问题的中间件服务&#xff0c;突破了传统数据库的容量和性能瓶颈&#xff0c;能够实现海量数据的高并发访问。以下是九河云总结的DDM的典型使用场景&#xff1a; 1. 互联网应用 在电商、…

Ubuntu16.04 安装OpenCV4.5.4 避坑

Ubuntu16.04 安装C版OpenCV4.5.4 Ubuntu16.04 VSCode下cmakeclanglldb调试c 文章目录 Ubuntu16.04 安装C版OpenCV4.5.41. 下载Opencv压缩包2. 安装Opencv-4.5.43. 配置OpenCV的编译环境4.测试是否安装成功 1. 下载Opencv压缩包 下载Opencv压缩包&#xff0c;选择source版本。…

RabbitMQ集群安装rabbitmq_delayed_message_exchange

1、单节点安装rabbitmq安装延迟队列 安装延迟队列rabbitmq_delayed_message_exchange可以参考这个文章&#xff1a; rabbitmq安装延迟队列-CSDN博客 2、集群安装rabbitmq_delayed_message_exchange 在第二个节点 join_cluster 之后&#xff0c;start_app 就会报错了 (CaseC…

QT开发:事件循环与处理机制的概念和流程概括性总结

事件循环与处理机制的概念和流程 Qt 事件循环和事件处理机制是 Qt 框架的核心&#xff0c;负责管理和分发各种事件&#xff08;用户交互、定时器事件、网络事件等&#xff09;。以下是详细透彻的概念解释和流程讲解。 1. 事件循环&#xff08;Event Loop&#xff09;的概念 …

博客搭建 — GitHub Pages 部署

关于 GitHub Pages GitHub Pages 是一项静态站点托管服务&#xff0c;它直接从 GitHub 上的仓库获取 HTML、CSS 和 JavaScript 文件&#xff0c;通过构建过程运行文件&#xff0c;然后发布网站。 本文最终效果是搭建出一个域名为 https://<user>.github.io 的网站 创建…

网络通信---MCU移植LWIP

使用的MCU型号为STM32F429IGT6&#xff0c;PHY为LAN7820A 目标是通过MCU的ETH给LWIP提供输入输出从而实现基本的Ping应答 OK废话不多说我们直接开始 下载源码 LWIP包源码&#xff1a;lwip源码 -在这里下载 ST官方支持的ETH包&#xff1a;ST-ETH支持包 这里下载 创建工程 …

【MySQL】存储引擎有哪些?区别是什么?

频率难度60%⭐⭐⭐⭐ 这个问题其实难度并不是很大&#xff0c;只是涉及到的相关知识比较繁杂&#xff0c;比如事务、锁机制等等&#xff0c;都和存储引擎有关系。有时还会根据场景选择不同的存储引擎。 下面笔者将会根据几个部分尽可能地讲清楚 MySQL 中的存储引擎&#xff0…