十五届蓝桥杯赛题-c/c++ 大学b组

握手问题

很简单,相互牵手即可,但是要注意,第一个人只能与其他49个人牵手,所以开头是加上49

#include <iostream>
using namespace std;
int main()
{int cnt=0;for(int i=49;i>=7;i--){cnt+=i;//cout<<i<<" ";}cout<<cnt;return 0;
}

小球反弹

好数

直接从1到n循环判断即可,只要有一次不符合条件就不算

#include <iostream>
#include<string>
#include<algorithm>
using namespace std;
int res=0;
int main()
{//奇数位数字奇数,偶数位int n;cin>>n;for(int i=1;i<=n;i++){string a=to_string(i);reverse(a.begin(),a.end());bool flag=false;for(int j=0;j<a.length();j++){if(j%2==0&&a[j]%2==0)//偶分位不为偶数flag=true;if(j%2!=0&&a[j]%2!=0)flag=true;}if(flag==false)res++;}cout<<res;return 0;
}

R格式

这道题本来是想,先对2的次方用高精度求解,再将浮点型转化为整型,用高精乘低精度求,但是,没有考虑到这个浮点型数组范围太大,只能用字符串进行表示

#include <bits/stdc++.h>
using namespace std;
//高精乘低精
vector<int>mul1(vector<int>&A,int b){vector<int> C;//t为进位int t=0;for(int i=0;i<A.size()||t;i++){if(i<A.size())t+=A[i]*b;C.push_back(t%10);//进位t/=10;}//去除前导零while(C.size()>1&&C.back()==0)C.pop_back();return C;
}
int main()
{int cnt=0;//处理小数点//你要想需要把浮点数转化为整型//输入n,将浮点数int n;string m;cin>>n>>m;vector<int>a;//这里将浮点数字符串存入动态数组for(int i=m.length()-1;i>=0;i--){if(m[i]!='.')a.push_back(m[i]-'0');else cnt=m.length()-i-1;//几位小数}//高精度乘低精度,高精度是浮点数,低精度就是2的次方个数while(n--)a=mul1(a,2);//结果再加上小数for(int i=a.size()-1;i>=0;i--){//cout<<"进入这";if(i==cnt){//达到小数点,开始进行四舍五入判断if(a[i-1]>=5){cout<<a[i]+1;break;}else{cout<<a[i];break;}}cout<<a[i];}return 0;
}

宝石组合:

这一题应该暴力能过40%左右,但是我的暴力竟然过了0%,老脸丢尽,后来开始思考dfs,但是过程中遇到了几个问题,

数字接龙

这题一看就是dfs,跟走迷宫很像,不过加了几个限制条件

路径不能交叉,并且这个是根据1,2,3,n-1进行路径的遍历,另外这个需要输出路径的方向

那么我在思考的时候遇到了几个问题:

  1. 如何表示才能让它的路径不进行交叉
  2. 如何储存这个路径并且输出

那么在看完题解之后得出了解决方案

  1. 八个方位,那么就需要8个不同的偏移量去存储
  2. 需要用一个四维数组去存储路径来避免交叉
  3. 输出用字符串输出即可

#include <iostream>
using namespace std;
#include <bits/stdc++.h>
using namespace std;
string ans;
int n,k;
int a[15][15],m[15][15];
int mark[15][15][15][15];
int nx[8]={-1,-1,0,1,1,1,0,-1};
int ny[8]={0,1,1,1,0,-1,-1,-1};//这个方向刚好是根据循环来设置的,i等于几走那个方向是有意义的
void dfs(int x,int y,string s,int t){if(ans.size())return ;//剪枝if(x==n-1&&y==n-1){if(s.size()==n*n-1)ans=s;return;//将该结果储存到字符串中}for(int i=0;i<8;i++){//8个方向int tx=x+nx[i];int ty=y+ny[i];if(tx<n&&tx>=0&&ty<n&&ty>=0&&a[tx][ty]==t&&m[tx][ty]==0){//不超范围,并且没有走过,并且顺序正确if(i%2&&mark[tx][y][x][ty])continue;//奇数时就要斜着走,那么斜着走但是这个位置的交叉线走过,那么continue不走这个,判断是否交叉//不过这个方位判断不太明白,这个是交叉线,比如你这次要从[x][y]走到[tx][ty],那么就判断该交叉线的斜方向交叉线m[tx][ty]=1;mark[tx][ty][x][y]=mark[x][y][tx][ty]=1;dfs(tx,ty,s+to_string(i),(t+1)%k);mark[tx][ty][x][y]=mark[x][y][tx][ty]=0;//撤销标记m[tx][ty]=0;}}
}
int main()
{cin>>n>>k;for(int i=0;i<n;i++){for(int j=0;j<n;j++){cin>>a[i][j];}}m[0][0]=1;dfs(0,0,"",1%k);//第一步也要处理if(ans=="")cout<<"-1";else cout<<ans;return 0;
}

拔河

这是一个非常暴力的解法,枚举所有结果进行排序即可

#include<iostream>
#include<algorithm>
#define int long long
using namespace std;
const int N=1e3+10;
int n,js=1,a[N],check[N*N];
signed main(){cin>>n;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<=n;i++){//我们先通过二层循环,暴力出每一种选法int s=0;for(int j=i;j<=n;j++){s+=a[j];//这里的每一种选法,就是从1-n的所有选法check[js++]=s;}}//可能有谁都不选的选法,check数组从0开始sort(check,check+js);//将他们从小到大排序,力量值之和差距最小的一定是相邻的两种选法//不用管区间选择重叠的情况,重叠部分相当于两种选法都没选重叠部分int ans=1e12+10;for(int i=1;i<js;i++)ans=min(ans,check[i]-check[i-1]);cout<<ans;return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【qt】控件1

1.控件使能&#xff08;enabled&#xff09; QPushbutton*stnew QPushbutton(this);//定义一个按钮 st->setEnabled(false);//按钮设置不能使用当设置该控件不能使用的话&#xff0c;对应控件的子控件也不能使用 通过isEnabled()函数可以查看对应控件状态 演示&#xff1…

昇思MindSpore第二课---Transformer

1. Transformer的概念 Transformer是一种基于注意力机制结构的神经网络&#xff0c;其主要的作用就是用于处理机器翻译、语言建模以及文本生成等自然语言的处理。 比如人类在做一篇阅读理解的时候&#xff0c;我们的注意力可能主要集中在我们所阅读的这一行内容。而机器也是如此…

【Go】-bufio库解读

目录 Reader和Writer接口 bufio.Reader/Writer 小结 其他函数-Peek、fill Reader小结 Writer Scanner结构体 缓冲区对于网络数据读写的重要性 Reader和Writer接口 在net/http包生成的Conn 接口的实例中有两个方法叫做Read和Write接口 type Conn interface {Read(b []b…

mac 0S中虚拟机分辨率高怎么办

在VMware Fusion安装的Windows虚拟机有时候会遇到下图的问题&#xff0c;分辨率很高、桌面和任务栏的图标都很小&#xff0c;没办法正常使用。 解决方法&#xff1a; 点击工具栏中的扳手图标&#xff0c;打开设置。 打开系统设置中的“显示器”。 取消勾选“使用Retina全分辨率…

找不到d3dx9_43.dll怎么解决,d3dx9_43.dll缺失的七种解决方法

​在计算机游戏领域&#xff0c;遇到“找不到d3dx9_43.dll”错误信息是一个相当普遍的现象。这一问题不仅影响玩家的游戏体验&#xff0c;还可能导致游戏无法启动或运行不稳定。本文旨在深入解析这一问题的原因&#xff0c;并提供有效的解决方法&#xff0c;帮助广大游戏玩家轻…

论文《基于现实迷宫地形的电脑鼠设计》深度分析(四)——现实迷宫算法

论文概述 《基于现实迷宫地形的电脑鼠设计 》是由吴润强、庹忠曜、刘文杰、项璟晨、孙科学等人于2023年发表的一篇优秀期刊论文。其针对现阶段电脑鼠计算量庞大且不适用于现实迷宫地形的问题&#xff0c;特基于超声波测距与传统迷宫算法原理&#xff0c;设计出一款可在现实…

ARM(安谋) China处理器

0 Preface/Foreword 0.1 参考博客 Cortex-M23/M33与STAR-MC1星辰处理器 ARM China&#xff0c;2018年4月established&#xff0c;独立运行。 1 处理器类型 1.1 周易AIPU 1.2 STAR-MC1&#xff08;星辰处理器&#xff09; STAT-MC1&#xff0c;主要为满足AIOT应用性能、功…

Iview DatePicker 仅允许选择当前月份及以后的月份

iview DatePicker之前月份禁用且下月可用 html代码 <DatePicker type"month" :options"options4" :value"dialogForm.estimatedStartTimeWithCreate" on-change"monthTime($event, loadDateStart)" placeholder"请选择时间&q…

Redis 内存管理

参考&#xff1a;面试官&#xff1a;为什么 Redis 不立刻删除已经过期的数据&#xff1f; 目录 1.Redis 给缓存数据设置过期时间有什么用&#xff1f; 2.Redis 是如何判断数据是否过期的呢&#xff1f; 3.Redis 过期 key 删除策略了解么&#xff1f; 4.大量 key 集中过期怎…

【IC每日一题:SVA简介】

IC每日一题&#xff1a;SVA简介 1 断言概念1.1 断言优势&#xff1b;1.2 断言类型1.2.1 立即断言1.2.2 并行断言1.2.3 并发断言Demo 2 SVA语法2.1 蕴含操作符&#xff1a;|-> 和 ->2.1.1 蕴含操作符 |>2.1.2 蕴含操作符|-> 2.2 延时操作符2.2.1 ##n 操作符 2.3 重复…

深度学习之One Stage目标检测算法2

我们将对单次目标检测器&#xff08;包括SSD系列和YOLO系列等算法&#xff09;进行综述。我们将分析FPN以理解多尺度特征图如何提高准确率&#xff0c;特别是小目标的检测&#xff0c;其在单次检测器中的检测效果通常很差。然后我们将分析Focal loss和RetinaNet&#xff0c;看看…

【MySQL】优化方向+表连接

目录 数据库表连接 表的关系与外键 数据库设计 规范化 反规范化 事务一致性 表优化 索引优化 表结构优化 查询优化 数据库表连接 表的关系与外键 表之间的关系 常见表关系总结 一对一关系&#xff1a;每一条记录在表A中对应表B的唯一一条记录&#xff0c;反之也是&a…

SHELL笔记(概念+变量)

shell 概念 Shell 是一个命令行解释器&#xff0c;它充当用户与操作系统内核之间的桥梁。用户在 Shell 环境下输入各种命令&#xff0c;Shell 负责接收并分析这些命令&#xff0c;然后将其转换为内核能够理解和执行的系统调用。通过这种方式&#xff0c;用户可以便捷地操作计算…

统信UOS开发环境支持Golang

UOS为Golang开发者提供了各种编辑器和工具链的支持,助力开发者实现高质量应用的开发。 文章目录 一、环境部署Golang开发环境安装二、代码示例Golang开发案例三、常见问题1. 包导入错误2. 系统资源限制一、环境部署 Golang开发环境安装 golang开发环境安装步骤如下: 1)安装…

web前端开发--盒子属性

1、设置背景图像固定 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>设置背景图像固定</title><style type"text/css">/*p{background-attachment: scroll;/*fixed固定*//*随元素滚动还是固定*/}&…

Python数据分析NumPy和pandas(三十五、时间序列数据基础)

时间序列数据是许多不同领域的结构化数据的重要形式&#xff0c;例如金融、经济、生态学、神经科学和物理学。在许多时间点重复记录的任何内容都会形成一个时间序列。许多时间序列是固定频率的&#xff0c;也就是说&#xff0c;数据点根据某些规则定期出现&#xff0c;例如每 1…

前端开发之打印功的使用和实例(vue-print-nb)

通过插件来进行实现 前言效果图1、安装插件vue2vue32、 引入Vue项目2、 使用2.1、在项目中创建按钮并且使用v-print绑定绑定打印事件2.2、编写要打印的内容,给内容附加唯一的id2.3、绑定的时间的方法和参数3、整体代码(此代码是通过vue3来进行实现的但是逻辑都是一样的)前言…

使用Web Animations API实现复杂的网页动画效果

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用Web Animations API实现复杂的网页动画效果 使用Web Animations API实现复杂的网页动画效果 使用Web Animations API实现复杂…

分享一个mysql-sql优化经验 in (xxx)的优化【 in(集合)改成not in(反集合) 】

一、优化前 如下sql&#xff0c;直接执行时间需要18.341秒 二、优化后 将 in(集合) 改成 not in(反集合)&#xff0c;如下图&#xff0c;执行性能提升至少4倍&#xff0c;需要4.643秒&#xff0c;并且查询结果不变 三、原因分析 为什么速度会变快那么多&#xff1f; in (集…

传感器页面、屏幕刷新任务学习

一、user_SensorPageTask 传感器页任务 ​ /* Private includes -----------------------------------------------------------*/ //includes #include "user_TasksInit.h" #include "user_ScrRenewTask.h" #include "user_SensorPageTask.h" …