寒假集训思维训练5题解

A - Full House 2
简单来说就是判断题,可以用讨论,也可以用数组来统计再枚举

#include<bits/stdc++.h>
using namespace std;
int vis[20];
int main() {int x;for(int i=1;i<=4;i++){cin>>x;vis[x]++;}//3     2   - >  3   1       2   2for(int i=1;i<=13;i++){for(int j=1;j<=13;j++){if(i==j)continue;if(vis[i]==3&&vis[j]==1||vis[i]==2&&vis[j]==2){cout<<"Yes";return 0;}}}cout<<"No";return 0;
}

B - Calculator
注意判断 00 00 00的情况就行了,如果是 00 00 00 记得要跳过一个0的位置。

#include<bits/stdc++.h>
using namespace std;
char s[1010];
int main() {cin>>s+1;int n=strlen(s+1);int ans=0;for(int i=1;i<=n;i++){if(s[i]!='0')ans++;else {if(s[i+1]=='0'){i++;ans++;}else{ans++;}}}cout<<ans;return 0;
}

C - Operate 1
仔细想想,如果两个字符串长度的差大于等于2,那么一定无解
如果两个字符串长度一样,我们可以依次枚举每个位置的字符来检查,看看是否至多只有一个位置不一样,因为如果有一个位置不一样,我们可以修改。

如果 S S S的长度刚刚是 T 的长度 + 1 T的长度+1 T的长度+1 ,我们可以考虑S当中删除一个
假设 S S S字符串 [ 1 到 l e n ] [1到len] [1len] 我们还是去做匹配,当遇到一个位置 x x x满足 S [ x ] ! = T [ x ] S[x]!=T[x] S[x]!=T[x] 接下来考虑删除 S [ x ] S[x] S[x] ,那么接下来就要由 S [ x + 1 ] 去匹配 T [ x ] S[x+1]去匹配T[x] S[x+1]去匹配T[x]; S [ x + 2 ] 去匹配 T [ x + 1 ] S[x+2]去匹配T[x+1] S[x+2]去匹配T[x+1]; S [ x + 3 ] 去匹配 T [ x + 2 ] S[x+3]去匹配T[x+2] S[x+3]去匹配T[x+2];以此类推,所以同学们只需要写另一个循环来枚举就行了。

如果S的长度比T短1,实际上插入我们是不好思考的,因为不知道在哪里插入。我们可以反向思考,S插入一个相当于T删除一个,那么问题变为 了检查T字符串删除一个 能不能变为S字符串,用上面的方法就行了

#include<bits/stdc++.h>
using namespace std;
char s[500010];
char t[500010];
int main() {int k;cin>>k;cin>>s+1;cin>>t+1;int n=strlen(s+1);int m=strlen(t+1);if(abs(m-n)>1){cout<<"No";return 0;}if(n==m){//长度一样但是字符串不一样int op=0;//修改次数 for(int i=1;i<=n;i++){if(s[i]!=t[i]){op++;}} if(op<=1){cout<<"Yes";return 0;}else {cout<<"No";return 0;}}if(n==m+1){//只能考虑删一个  int pos;for(int i=1;i<=n;i++){if(s[i]!=t[i]){pos=i;break;}}for(int i=pos+1,j=pos;i<=n;i++,j++){if(s[i]!=t[j]){cout<<"No";return 0;}} cout<<"Yes";return 0;}if(n==m-1){//只能考虑插入一个  等价于T串删除一个位置 int pos;for(int i=1;i<=m;i++){if(s[i]!=t[i]){pos=i;break;}}for(int i=pos+1,j=pos;i<=m;i++,j++){if(s[j]!=t[i]){cout<<"No";return 0;}} cout<<"Yes";return 0;}return 0;
}

D - Equally
其实那么三个数一样,要么把两个小一点的放在一块,来检查。所以排序就行了

#include<bits/stdc++.h>
using namespace std;
int A[5];
int main() {for(int i=1;i<=3;i++){cin>>A[i];}sort(A+1,A+1+3);if(A[1]==A[3]||A[1]+A[2]==A[3]){cout<<"Yes";}else{cout<< "No";}return 0;
}

E - Santa Claus 1
这个问题简单来说就是,你控制的人在 ( x , y ) (x,y) (x,y)位置,接下来有一系列指令 T T T字符串,你要按指令去走格子,吃糖果(我视为@ 是糖果,吃了之后修改为 . 点)
注意不要越界

#include<bits/stdc++.h>
using namespace std;
char s[110][110];
char T[10010];
int main() {int n,m,x,y;cin>>n>>m>>x>>y;for(int i=1;i<=n;i++){cin>>s[i]+1;}cin>>T+1;int len=strlen(T+1);int ans=0;for(int i=1;i<=len;i++){if(T[i]=='U'){if(s[x-1][y]=='.'||s[x-1][y]=='@'){x--;if(s[x][y]=='@'){ans++;s[x][y]='.';}}}else if(T[i]=='D'){if(s[x+1][y]=='.'||s[x+1][y]=='@'){x++;if(s[x][y]=='@'){ans++;s[x][y]='.';}}}if(T[i]=='L'){if(s[x][y-1]=='.'||s[x][y-1]=='@'){y--;if(s[x][y]=='@'){ans++;s[x][y]='.';}}}if(T[i]=='R'){if(s[x][y+1]=='.'||s[x][y+1]=='@'){y++;if(s[x][y]=='@'){ans++;s[x][y]='.';}}}}cout<<x<<" "<<y<<" "<<ans;return 0;
}

F - Illuminate Buildings
其实,我们可以来枚举从哪个灯开始,接下来依次枚举间隔,来检查最大值就行了

即我先枚举从第 i i i个灯开始,接下来 i 到 N i到N iN的灯都有可能选,接下来枚举间隔 j = 1 , 2 , 3... ( n − i ) j=1,2,3...(n-i) j=1,2,3...(ni)
来检查每间隔 j j j,是不是还是第 i i i个灯一样的灯 最后保留最大值

#include<bits/stdc++.h>
using namespace std;
const int N=3005;
int h[N];
int main(){int n;cin>>n;for(int i=1;i<=n;i++)cin>>h[i];int ans=1;for(int t=1;t<=n;t++){//暴力枚举间隔for(int i=1;i<=t;i++){int sum=0;for(int j=i;j<=n;j+=t){ans=max(ans,sum);if(j==i||h[j]==h[j-t])sum++;else sum=1;ans=max(ans,sum);}//求出最长的合法序列}}cout<<ans<<"\n";
}

G题H题不讲了

I - Perfect Standings
题目是这样子的,一场比赛有 A , B , C , D , E A,B,C,D,E A,B,C,D,E五道题,每道题的分数给我们了
题目想让我们输出,在所有的解题情况当中,前31名的做题情况。
即先按做题得到的总分排序,如果总分一样的两个人,按做题的题目编号来排序,类似于如果小明做了ABC题得分 跟 小刚做了BCD题一样,那么按字典序来排序的话(字典序指的是,两个字符串从前往后做比较,谁第一次比另一个小了,谁的字典序就更小)。按字典序排序,应该先输出小明的做题情况ABC,再输出BCD。

所以这个题首先我们得记录所有可能的做题情况,即对于5道题目,所有的做题可能,都要枚举出来,存下来。

如何枚举5道题目的做题情况呢? 可以考虑0,1 其中0表示没做出来
具体枚举方式请看下面代码。我分别用 i , j , k , p , q 的值表示第 12345 道题目有没有解决 i,j,k,p,q的值表示第1 2 3 4 5道题目有没有解决 i,j,k,p,q的值表示第12345道题目有没有解决
然后来计算分数,统计到结构体里面,顺便记录一下这个人每道题的做题情况,即 A [ i ] = 1 表示第 i 个题做出来了 A[i]=1 表示第i个题做出来了 A[i]=1表示第i个题做出来了

#include<bits/stdc++.h>
using namespace std;
struct node{int solve[6];int fen;
}A[50];
int B[10];
bool cmp(node x,node y){if(x.fen==y.fen){for(int i=1;i<=5;i++){if(x.solve[i]!=y.solve[i])return x.solve[i]>y.solve[i];}		}return x.fen>y.fen;
}
int main() {for(int i=1;i<=32;i++){for(int j=1;j<=5;j++){A[i].solve[j]=0;A[i].fen=0;}}for(int i=1;i<=5;i++){cin>>B[i];	}int num=0;for(int i=0;i<=1;i++){for(int j=0;j<=1;j++){for(int k=0;k<=1;k++){for(int p=0;p<=1;p++){for(int q=0;q<=1;q++){num++;// num记录  哪一种做题情况 A[num].solve[1]=i;A[num].solve[2]=j;A[num].solve[3]=k;A[num].solve[4]=p;A[num].solve[5]=q;// solve[5] 表示第5个题的做题情况 for(int w=1;w<=5;w++){A[num].fen+=B[w]*A[num].solve[w];//计算当前这个情况的总分//B数组对应的是第w道题的分数//solve[w] 对应第w道题 当前有没有做出来//没做出来就是0去做乘法,所以拿不到这个题的分数  }	}}}}}sort(A+1,A+1+33,cmp);// 排序    注意要写好排序函数   分数一样的情况  for(int i=1;i<=31;i++){ //输出前31名的做题情况 for(int j=1;j<=5;j++){// 枚举当前这个人做了哪些题,按字母输出   if(A[i].solve[j]==1){ //检查当前这个人 第j道题有没有做出来   cout<<char('A'+j-1);}}cout<<'\n';}return 0;
}

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

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

相关文章

ubuntu 本地部署deepseek r1 蒸馏模型

本文中的文件路径或网络代理需要根据自身环境自行删改 一、交互式chat页面 1.1 open-webui 交互窗口部署&#xff1a;基于docker安装&#xff0c;且支持联网搜索 Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 AI 平台&#xff0c;旨在完全离线操作。它支持各种 LLM…

数据库 绪论

目录 数据库基本概念 一.基本概念 1.信息 2.数据 3.数据库&#xff08;DB&#xff09; 4.数据库管理系统&#xff08;DBMS&#xff09; 5.数据库系统&#xff08;DBS&#xff09; 二.数据管理技术的发展 1.人工管理阶段 2.文件系统阶段 3.数据库系统阶段 4.数据库管…

数据中台是什么?:架构演进、业务整合、方向演进

文章目录 1. 引言2. 数据中台的概念与沿革2.1 概念定义2.2 历史沿革 3. 数据中台的架构组成与关键技术要素解析3.1 架构组成3.2 关键技术要素 4. 数据中台与其他平台的对比详细解析 5. 综合案例&#xff1a;金融行业数据中台落地实践5.1 背景5.2 解决方案5.3 成果与价值 6. 方向…

【DeepSeek】DeepSeek概述 | 本地部署deepseek

目录 1 -> 概述 1.1 -> 技术特点 1.2 -> 模型发布 1.3 -> 应用领域 1.4 -> 优势与影响 2 -> 本地部署 2.1 -> 安装ollama 2.2 -> 部署deepseek-r1模型 1 -> 概述 DeepSeek是由中国的深度求索公司开发的一系列人工智能模型&#xff0c;以其…

如何使用C++将处理后的信号保存为PNG和TIFF格式

在信号处理领域&#xff0c;我们常常需要将处理结果以图像的形式保存下来&#xff0c;方便后续分析和展示。C提供了多种库来处理图像数据&#xff0c;本文将介绍如何使用stb_image_write库保存为PNG格式图像以及使用OpenCV库保存为TIFF格式图像。 1. PNG格式保存 使用stb_ima…

查出 product 表中所有 detail 字段包含 xxx 的完整记录

您可以使用以下 SQL 查询语句来查出 product 表中所有 detail 字段包含 oss.kxlist.com 的完整记录&#xff1a; SELECT * FROM product WHERE INSTR(detail, oss.kxlist.com) > 0;下面是detail字段包含的完整内容 <p><img style"max-width:100%;" src…

微服务 day01 注册与发现 Nacos OpenFeign

目录 1.认识微服务&#xff1a; 单体架构&#xff1a; 微服务架构&#xff1a; 2.服务注册和发现 1.注册中心&#xff1a; 2.服务注册&#xff1a; 3.服务发现&#xff1a; 发现并调用服务&#xff1a; 方法1&#xff1a; 方法2&#xff1a; 方法3:OpenFeign OpenFeig…

Shell原理简介与Linux中的权限问题

一、Shell命令及运行原理 1.1通常说的计算机体系结构指的是什么 通常意义上的计算机体系结构指的是芯片&#xff1a; 如锐龙amd&#xff0c;英特尔酷睿intel core 他们分为 x86&#xff1a;32位 x86_64&#xff1a;64位 两种 1.2广义上的Linux系统分为哪些部分&#xf…

在rtthread中,scons构建时,它是怎么知道是从rtconfig.h找宏定义,而不是从其他头文件找?

在rtthread源码中&#xff0c;每一个bsp芯片板级目录下都有一个 SConstruct scons构建脚本的入口&#xff0c; 在这里把rtthread tools/目录下的所有模块都添加到了系统路径中&#xff1a; 在tools下所有模块中&#xff0c;最重要的是building.py模块&#xff0c;在此脚本里面…

C# Winform 使用委托实现C++中回调函数的功能

C# Winform 使用委托实现C中回调函数的功能 在项目中遇到了使用C#调用C封装的接口&#xff0c;其中C接口有一个回调函数的参数。参考对比后&#xff0c;在C#中是使用委托(delegate)来实现类似的功能。 下面使用一个示例来介绍具体的使用方式&#xff1a; 第一步&#xff1a;…

深度学习之神经网络框架搭建及模型优化

神经网络框架搭建及模型优化 目录 神经网络框架搭建及模型优化1 数据及配置1.1 配置1.2 数据1.3 函数导入1.4 数据函数1.5 数据打包 2 神经网络框架搭建2.1 框架确认2.2 函数搭建2.3 框架上传 3 模型优化3.1 函数理解3.2 训练模型和测试模型代码 4 最终代码测试4.1 SGD优化算法…

2025.2.9 每日学习记录2:技术报告写了一半+一点点读后感

0.近期主任务线 1.完成小论文准备 目标是3月份完成实验点1的全部实验和论文。 2.准备教资笔试 打算留个十多天左右&#xff0c;一次性备考笔试的三个科目 1.实习申请技术准备&#xff1a;微调、Agent、RAG 1.今日完成任务 1.电子斗蛐蛐&#xff08;文本书写领域&am…

9 Pydantic复杂数据结构的处理

在构建现代 Web 应用时&#xff0c;我们往往需要处理复杂的输入和输出数据结构。例如&#xff0c;响应数据可能包含嵌套字典、列表、元组&#xff0c;甚至是多个嵌套对象。Pydantic 是一个强大的数据验证和序列化库&#xff0c;可以帮助我们轻松地处理这些复杂的数据结构&#…

链表(LinkedList) 1

上期内容我们讲述了顺序表&#xff0c;知道了顺序表的底层是一段连续的空间进行存储(数组)&#xff0c;在插入元素或者删除元素需要将顺序表中的元素整体移动&#xff0c;时间复杂度是O(n)&#xff0c;效率比较低。因此&#xff0c;在Java的集合结构中又引入了链表来解决这一问…

torch_bmm验算及代码测试

文章目录 1. torch_bmm2. pytorch源码 1. torch_bmm torch.bmm的作用是基于batch_size的矩阵乘法,torch.bmm的作用是对应batch位置的矩阵相乘&#xff0c;比如&#xff0c; mat1的第1个位置和mat2的第1个位置进行矩阵相乘得到mat3的第1个位置mat1的第2个位置和mat2的第2个位置…

shell+kafka实现服务器健康数据搜集

今天有一个徒弟问我&#xff0c;分发、代理服务器都装有kafka&#xff0c;如何快速收集服务器的健康数据&#xff0c;每10秒就收集一次&#xff1f; 我当时听完之后&#xff0c;楞了一下&#xff0c;然后说出了我的见解&#xff1a;认为最快速的方法无法就是建议shell脚本直接采…

macbook2015升级最新MacOS 白苹果变黑苹果

原帖&#xff1a;https://www.bilibili.com/video/BV13V411c7xz/MAC OS系统发布了最新的Sonoma&#xff0c;超酷的动效锁屏壁纸&#xff0c;多样性的桌面小组件&#xff0c;但是也阉割了很多老款机型的升级权利&#xff0c;所以我们可以逆向操作&#xff0c;依旧把老款MAC设备强…

建筑物损坏程度分割数据集labelme格式2816张5类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;2816 标注数量(json文件个数)&#xff1a;2816 标注类别数&#xff1a;5 标注类别名称:["minor-damage","destroyed&quo…

ReactNative进阶(五十九):存量 react-native 项目适配 HarmonyOS NEXT

文章目录 一、前言二、ohos_react_native2.1 Fabric2.2 TurboModule2.2.1 ArkTSTurboModule2.2.2 cxxTurboModule&#xff1a; 三、拓展阅读 一、前言 2024年10月22日19:00&#xff0c;华为在深圳举办“原生鸿蒙之夜暨华为全场景新品发布会”&#xff0c;主题为“星河璀璨&…

Golang GORM系列:GORM CRUM操作实战

在数据库管理中&#xff0c;CRUD操作是应用程序的主干&#xff0c;支持数据的创建、检索、更新和删除。强大的Go对象关系映射库GORM通过抽象SQL语句的复杂性&#xff0c;使这些操作变得轻而易举。本文是掌握使用GORM进行CRUD操作的全面指南&#xff0c;提供了在Go应用程序中有效…