十五届蓝桥杯赛题-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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从零开始:如何使用第三方视频美颜SDK开发实时直播美颜平台

开发一个具有实时美颜功能的直播平台&#xff0c;能够显著提高用户体验和内容质量。而利用第三方视频美颜SDK可以大大简化开发过程&#xff0c;加快产品上市速度。本篇文章&#xff0c;小编将从零开始&#xff0c;详细讲解如何使用第三方视频美颜SDK开发一个实时直播美颜平台。…

ROS入门学习ONE

ros入门玩法1&#xff1a;控制小龟龟 终端1输入 sudo apt install ros-noetic-rqt-steering 新建终端2&#xff08;快捷键CtrlAltT)&#xff0c;打开控制台 roscore //启动ros系统 回到原终端 rosrun rosrun rqt_robot_steering rqt_robot_steering 新建终端3&#xff0c;…

shell脚本(二)

声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&#…

简单理解下基于 Redisson 库的分布式锁机制

目录 简单理解下基于 Redisson 库的分布式锁机制代码流程&#xff1a;方法的调用&#xff1a;具体锁的实现&#xff1a;riderBalance 方法&#xff1a;tryLock 方法&#xff08;重载&#xff09;&#xff1a;tryLock 方法&#xff08;核心实现&#xff09;&#xff1a; 简单理解…

小鹏汽车智慧材料数据库系统项目总成数据同步

1、定时任务处理 2、提供了接口 小鹏方面提供的推送的数据表结构&#xff1a; 这几个表总数为100多万&#xff0c;经过条件筛选过滤后大概2万多条数据 小鹏的人给的示例图&#xff1a; 界面&#xff1a; SQL: -- 查询车型 select bmm.md_material_id, bmm.material_num, bm…

LeetCode 3244.新增道路查询后的最短距离 II:贪心(跃迁合并)-9行py(O(n))

【LetMeFly】3244.新增道路查询后的最短距离 II&#xff1a;贪心&#xff08;跃迁合并&#xff09;-9行py&#xff08;O(n)&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/shortest-distance-after-road-addition-queries-ii/ 给你一个整数 n 和一个二维…

华为无线AC+AP组网实际应用小结

之前公司都是使用的H3C的交换机、防火墙以及无线AC和AP的&#xff0c;最近优化下无线网络&#xff0c;说新的设备用华为的&#xff0c;然后我是直到要部署的当天才知道用华为设备的&#xff0c;就很无语了&#xff0c;一点准备没有&#xff0c;以下为这次的实际操作记录吧&…

Fakelocation Server服务器/专业版 Windows11

前言:需要Windows11系统 Fakelocation开源文件系统需求 Windows11 | Fakelocation | 任务一 打开 PowerShell&#xff08;以管理员身份&#xff09;命令安装 Chocolatey Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProto…

C语言基础学习:抽象数据类型(ADT)

基础概念 抽象数据类型&#xff08;ADT&#xff09;是一种数据类型&#xff0c;它定义了一组数据以及可以在这组数据上执行的操作&#xff0c;但隐藏了数据的具体存储方式和实现细节。在C语言中&#xff0c;抽象数据类型&#xff08;ADT&#xff09;是一种非常重要的概念&…

基于深度学习CNN算法的花卉分类识别系统01--带数据集-pyqt5UI界面-全套源码

文章目录 基于深度学习算法的花卉分类识别系统一、项目摘要二、项目运行效果三、项目文件介绍四、项目环境配置1、项目环境库2、环境配置视频教程 五、项目系统架构六、项目构建流程1、数据集2、算法网络Mobilenet3、网络模型训练4、训练好的模型预测5、UI界面设计-pyqt56、项目…

Bokeh实现大规模数据可视化的最佳实践

目录 引言 一、Bokeh简介 二、安装Bokeh 三、数据准备 四、性能优化 五、创建图表 六、添加交互功能 七、应用案例 八、高级技巧 九、总结 引言 在数据科学领域,数据可视化是一个至关重要的环节。通过可视化,我们可以直观地理解数据的特征和趋势,为数据分析和决策…

Easyexcel(4-模板文件)

相关文章链接 Easyexcel&#xff08;1-注解使用&#xff09;Easyexcel&#xff08;2-文件读取&#xff09;Easyexcel&#xff08;3-文件导出&#xff09;Easyexcel&#xff08;4-模板文件&#xff09; 文件导出 获取 resources 目录下的文件&#xff0c;使用 withTemplate 获…

【山大909算法题】2014-T1

文章目录 1.原题2.算法思想3.关键代码4.完整代码5.运行结果 1.原题 为带表头的单链表类Chain编写一个成员函数Reverse&#xff0c;该函数对链表进行逆序操作&#xff08;将链表中的结点按与原序相反的顺序连接&#xff09;&#xff0c;要求逆序操作就地进行&#xff0c;不分配…

[Redis#2] 定义 | 使用场景 | 安装教程 | 快!

目录 1. 定义 In-memory data structures 在内存中存储数据 2. 优点&#xff01;快 Programmability 可编程性 Extensibility 扩展性 Persistence 持久化 Clustering 分布式集群 High availability 高可用性 ⭕快速访问的实现 3. 使用场景 1.Real-time data store …

学习编程,学习中间件,学习源码的思路

01 看的多&#xff0c;内化不足 最近想复习一下编程相关的知识&#xff0c;在复习前我翻开了之前的一些笔记&#xff0c;这些笔记基本都是从书本、视频、博客等摘取记录的&#xff0c;看着这些笔记心里总结&#xff1a;看的多&#xff0c;内化不足。 02 整理大纲 为了解决这个…

hhdb数据库介绍(10-2)

集群管理 计算节点集群 集群管理主要为用户提供对计算节点集群的部署、添加、启停监控、删除等管理操作。 集群管理记录 集群管理页面显示已部署或已添加的计算节点集群信息。可以通过左上角搜索框模糊搜索计算节点集群名称进行快速查找。同时也可以通过右侧展开展开/隐藏更…

AG32既可以做MCU,也可以仅当CPLD使用

Question: AHB总线上的所有外设都需要像ADC一样&#xff0c;通过cpld处理之后才能使用? Reply: 不用。 除了ADC外&#xff0c;其他都是 mcu可以直接配置使用的。 Question: DMA和CMP也不用? Reply: DMA不用。 ADC/DAC/CMP 用。 CMP 其实配置好后&#xff0c;可以直…

贪心算法(1)

目录 柠檬水找零 题解&#xff1a; 代码&#xff1a; 将数组和减半的最少操作次数&#xff08;大根堆&#xff09; 题解&#xff1a; 代码&#xff1a; 最大数&#xff08;注意 sort 中 cmp 的写法&#xff09; 题解&#xff1a; 代码&#xff1a; 摆动序列&#xff0…

网络爬虫——综合实战项目:多平台房源信息采集与分析系统

1. 项目背景与目标 1.1 项目背景 随着房产市场的快速发展&#xff0c;各大平台上充斥着大量房源信息。为了帮助用户快速掌握市场动态&#xff0c;需要通过爬虫技术自动采集多平台数据&#xff0c;清洗后进行存储和分析&#xff0c;为用户提供有价值的洞察。开发者通过这一实战…

数据结构-7.Java. 对象的比较

本篇博客给大家带来的是java对象的比较的知识点, 其中包括 用户自定义类型比较, PriorityQueue的比较方式, 三种比较方法...... 文章专栏: Java-数据结构 若有问题 评论区见 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 .…