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走丢啦(主要是写不出来)
相关文章:

1/20赛后总结
1/20赛后总结 T1『讨论区管理员』的旅行 - BBC编程训练营 算法:IDA* 分数:0 damn it! Ac_code走丢了~~(主要是没有写出来)~~ T2华强买瓜 - BBC编程训练营 算法:双向DFS或者DFS剪枝 分数:0 Ac_code…...

PVE 虚拟机安装 Debian 无图形化界面服务器
Debian 安装 Debian 镜像下载 找一个Debian镜像服务器,根据需要的版本和自己硬件选择。 iso-cd/:较小,仅包含安装所需的基础组件,可能需要网络访问来完成安装。有镜像 debian-12.9.0-amd64-netinst.isoiso-dvd/:较…...

第17篇:python进阶:详解数据分析与处理
第17篇:数据分析与处理 内容简介 本篇文章将深入探讨数据分析与处理在Python中的应用。您将学习如何使用pandas库进行数据清洗与分析,掌握matplotlib和seaborn库进行数据可视化,以及处理大型数据集的技巧。通过丰富的代码示例和实战案例&am…...

三天急速通关Java基础知识:Day1 基本语法
三天急速通关JAVA基础知识:Day1 基本语法 0 文章说明1 关键字 Keywords2 注释 Comments2.1 单行注释2.2 多行注释2.3 文档注释 3 数据类型 Data Types3.1 基本数据类型3.2 引用数据类型 4 变量与常量 Variables and Constant5 运算符 Operators6 字符串 String7 输入…...

Python的进程和线程
ref 接受几个设定: 进程是一家almost密不透风的公司,缅甸KK园区 线程里面工作的…人 进程**[园区]**内公共资源对于进程来说,可以共享. 别的园区[进程],一般不能和自己的园区共享人员资源,除非… 好的,现在再接受设定: 单个CPU在任一时刻只能执行单个线程,只有…...

【Mysql】记录锁、间隙锁和临键锁的区别
InnoDB通过MVCCNext-Key Locks,解决了可重复读的事务隔离级别出现的幻读问题。 记录锁 记录锁就是为某行数据进行加锁,它封锁该行的索引记录 SELECT * FROM table WHERE id 1 FOR UPDATE id为1的记录行会被锁住。需要注意的的:id列必须为…...

神经网络|(二)sigmoid神经元函数
【1】引言 在前序学习进程中,我们已经了解了基本的二元分类器和神经元的构成,文章学习链接为: 神经网络|(一)加权平均法,感知机和神经元-CSDN博客 在此基础上,我们认识到神经元本身在做二元分类,是一种非…...

w-form-select.vue(自定义下拉框组件)(与后端字段直接相关性)
文章目录 1、w-form-select.vue 组件中每个属性的含义2、实例3、源代码 1、w-form-select.vue 组件中每个属性的含义 好的,我们来详细解释 w-form-select.vue 组件中每个属性的含义,并用表格列出它们是否与后端字段直接相关: 属性解释表格&…...

【JVM】垃圾收集器详解
你将学到 1. Serial 收集器 2. ParNew 收集器 3. Parallel Scavenge 收集器 4. Serial Old 收集器 5. Parallel Old 收集器 6. CMS 收集器 7. G1 收集器 在 Java 中,垃圾回收(GC)是自动管理内存的一个重要机制。HotSpot JVM 提供了多种…...

python创建一个httpServer网页上传文件到httpServer
一、代码 1.server.py import os from http.server import SimpleHTTPRequestHandler, HTTPServer import cgi # 自定义请求处理类 class MyRequestHandler(SimpleHTTPRequestHandler):# 处理GET请求def do_GET(self):if self.path /:# 响应200状态码self.send_response(2…...

【Maui】提示消息的扩展
文章目录 前言一、问题描述二、解决方案三、软件开发(源码)3.1 消息扩展库3.2 消息提示框使用3.3 错误消息提示使用3.4 问题选择框使用 四、项目展示 前言 .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移…...

租车骑绿岛
租车骑绿岛 真题目录: 点击去查看 E 卷 100分题型 题目描述 部门组织绿岛骑行团建活动。租用公共双人自行车,每辆自行车最多坐两人,最大载重M。给出部门每个人的体重,请问最多需要租用多少双人自行车。 输入描述 第一行两个数字m、n&…...

Pytorch - YOLOv11自定义资料训练
►前言 本篇将讲解目前最新推出的YOLOv11搭配Roboflow进行自定义资料标注训练流程,透过Colab上进行实作说明,使大家能够容易的了解YOLOv11的使用。 ►YOLO框架下载与导入 ►Roboflow的资料收集与标注 进行自定义资料集建置与上传 透过Roboflow工具进行…...

微服务与docker
准备工作 在课前资料中给大家提供了黑马商城项目的资料,我们需要先导入这个单体项目。不过需要注意的是,本篇及后续的微服务学习都是基于Centos7系统下的Docker部署,因此你必须做好一些准备: Centos7的环境及一个好用的SSH客户端装好Docker会使用Docker如果是学习过上面Doc…...

1.23 消息队列
使用消息队列,实现两个终端相互聊天 程序代码: w1.c #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h&g…...

【华为路由的arp配置】
华为路由的arp配置 ARP:IP地址与MAC地址的映射。 R1: g0/0/0:10.1.1.254/24 g0/0/1:10.1.2.254/24 PC1: 10.1.1.1/16 PC2: 10.1.1.2/16 PC3: 10.1.2.3/16 动态ARP 查看PC1的arp表,可以看到,列表为空。 查看R1的arp表 在PC3上ping命令测…...

绘制决策树的尝试1
代码复制 import pydotplus 复制 - 这一行代码用于导入pydotplus模块,这是一个用来在Python中创建图形的工具。2. python from IPython.display import Image 这一行代码用于从IPython显示模块中导入Image类,它允许我们在Jupyter笔记本中显示图像。…...

概率论里的特征函数,如何用卷积定理去理解
概率论里的特征函数,如何用卷积定理去理解_哔哩哔哩_bilibili...

Spring 是如何解决循环依赖问题
Spring 框架通过 三级缓存 机制来解决循环依赖问题。循环依赖是指两个或多个 Bean 相互依赖,形成一个闭环,例如 Bean A 依赖 Bean B,而 Bean B 又依赖 Bean A。Spring 通过提前暴露未完全初始化的 Bean 来解决这个问题。 以下是 Spring 解决…...

Linux 目录操作详解
Linux目录操作详解 1. 获取当前工作目录1.1 getcwd()1.2 get_current_dir_name() 2. 切换工作目录2.1 chdir() 3. 创建和删除目录3.1 mkdir()3.2 rmdir() 4. 获取目录中的文件列表4.1 opendir() 打开目录4.2 readdir() 读取目录内容4.3 closedir() 关闭目录 5. dirent 结构体6.…...

Elasticsearch的经典面试题及详细解答
以下是一些Elasticsearch的经典面试题及详细解答: 一、基础概念与原理 什么是Elasticsearch? 回答: Elasticsearch是一个基于Lucene的分布式搜索引擎,提供了RESTful API,支持多租户能力。它能够快速、近实时地存储、搜…...

Linux-arm(1)ATF启动流程
Linux-arm(1)ATF启动流量 Author:Once Day Date:2025年1月22日 漫漫长路有人对你微笑过嘛… 全系列文章可查看专栏: Linux实践记录_Once_day的博客-CSDN博客 参考文档: ARM Trusted Firmware分析——启动、PSCI、OP-TEE接口 Arnold Lu 博…...

C#编程:List.ForEach与foreach循环的深度对比
在C#中,List<T>.ForEach 方法和传统的 foreach 循环都用于遍历列表中的元素并对每个元素执行操作,但它们之间有一些关键的区别。 List<T>.ForEach 方法 方法签名:public void ForEach(Action<T> action)类型:…...

C语言文件操作:标准库与系统调用实践
目录 1、C语言标准库文件操作 1.1.题目要求: 1.2.函数讲解: fopen 函数原型 参数 常用的打开模式 返回值 fwrite函数 函数原型 参数 返回值 注意事项 fseek函数 函数原型 参数 返回值 fread函数 函数原型 参数 返回值 fclose 函数…...

代码随想录 栈与队列 test 7
347. 前 K 个高频元素 - 力扣(LeetCode) 首先想到哈希,用key来存元素,value来存出现次数,最后进行排序,时间复杂度约为o(nlogn)。由于只需求前k个,因此可以进行优化,利用堆来维护这…...

C语言练习(21)
有一行电文,已按下面规律译成密码: A→Za→Z B→Yb→y C→Xc→X 即第1个字母变成第26个字母,第2个字母变成第25个字母,第i个字母变成第(26-i十1)个字母。非字母字符不变。假如已知道密码是Umtorhs&…...

智能手机“混战”2025:谁将倒下而谁又将突围?
【潮汐商业评论原创】 “去年做手机比较艰难,几乎每个品牌都在调价、压货,像华为这种以前都不给我们分货的厂商,也开始成为我的主要库存。不过今年开头比较好,20号国补一开始,店里的人流和手机销量就明显涨了不少&…...

计算机图形学:实验一 OpenGL基本绘制
1.OpenGL的环境配置: 集成开发环境Visual Studio Community 2019的安装: 在Windows一栏选择使用C的桌面开发;再转到“单个组件”界面,在“编译器、生成工具和运行时”一栏选择用于“Windows的C CMake工具”;然后转到…...

二分查找题目:快照数组
文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:快照数组 出处:1146. 快照数组 难度 7 级 题目描述 要求 实现支持下列接口的快照数组: SnapshotArray(int length) \textt…...

深度学习|表示学习|卷积神经网络|参数共享是什么?|07
如是我闻: Parameter Sharing(参数共享)是卷积神经网络(CNN)的一个重要特性,帮助它高效地处理数据。参数共享的本质就是参数“本来也没有变过”。换句话说,在卷积层中,卷积核的参数&…...