当前位置: 首页 > news >正文

蓝桥杯第七届大学B组详解

目录

1.煤球数量;

2.生日蜡烛;

3.凑算式

4.方格填数

5.四平方和

6.交换瓶子

7.最大比例


1.煤球数量

题目解析:可以根据·题目的意思,找到规律。

1     *-  1个

2    ***   3个

3   ******  6个

4 ********** 10个

不难发现 第一层的个数加上第二层的层数就是第二层的煤球数目。本质就是找规律数学。

#include <iostream>
#include<vector>
using namespace std;int main()
{int n = 0, sum = 0;for(int i = 1; i <= 100; i++){n += i;sum += n;}cout << sum << endl;return 0;
}

2.生日蜡烛

题目解析:直接枚举就行;

#include<iostream>
using namespace std;
int main()
{for (int i = 1;i <= 100; i++){int sum = 0;for (int j = i; j <= 100; j++){sum += j;if (sum == 236)cout << i << endl;}}return 0;
}

3.凑算式

题目解析:是不是和三羊献瑞有点像,又可以使用next_premutation();

注意这个题目弄错了是1-9数字;md我就整整调试1个多小时,心态差点崩溃了,都开始怀疑自己了。

using namespace std;
#include<iostream>
#include<algorithm>int ret = 0;
int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9};bool check()
{int x = a[3] * 100 + a[4] * 10 + a[5];int y = a[6] * 100 + a[7] * 10 + a[8];if(((a[1] * y) + (a[2] * x)) % (a[2] * y) == 0 && a[0] + ((a[1] * y) + (a[2] * x)) / (a[2] * y) == 10){return true;}else{return false;}
}int main()
{do{if(check()){ret++;}}while(next_permutation(a, a + 9));cout << ret << endl;return 0;
}

4.方格填数

题目解析:动态规划类型题目,就是在方格中填数,如果这个方格没有被使用过并且方格相邻不重复就将数字填进去,填完就是一种方案数。累计方案数。

细节:初始化为-20,因为如果为填9就算相邻区分不出来。

#include <iostream>
#include<bits/stdc++.h>
using namespace std;//方格矩阵,因为要使用到相邻的元素所以就会使用到就多创建行列
// -20   -20  -20-20
//    +--+--+--+
//    |  |  |  | -20
// +--+--+--+--+
// |  |  |  |  | -20
// +--+--+--+--+
// |  |  |  |    -20
// +--+--+--+
//-20  -20 -20 -20 -20
int a[4][5];
//判断是否被使用过
int vis[10];
int sum = 0;
int dx[4] = {-1, -1, -1, 0};
int dy[4] = {0, 1, -1, -1};bool check(int x, int y, int num)
{for(int i = 0; i < 4; i++){int xx = dx[i] + x;int yy = dy[i] + y;//边界检查if(xx < 3 && xx >= 0 && yy < 4 && yy >= 0){//如果相邻的话那么相差一定为1;if(abs( a[xx][yy] - num ) == 1)return false;}}return true;
}void dfs(int x, int y)
{//出口:第二行第三列if(x == 2 &&  y == 3){sum++;return;}//开始填数for(int i = 0; i < 10; i++){//判断没被使用过的方格并且不相临if(vis[i] == 0 && check(x, y, i)){vis[i] = 1;a[x][y] = i;//递归下一个方格,或者下一行if(y + 1 < 4)dfs(x, y + 1);elsedfs(x + 1, 0);//回溯vis[i] = 0;}}
}int main()
{//矩阵初始for(int i = 0; i < 4; i++){for(int j = 0; j < 4; j++){a[i][j] = -20;}}//从第0行第一列开始;dfs(0,1);cout << sum << endl;return 0;
}

5.四平方和

题目解析:可以想到暴力枚举的方法,复杂度为0(n^4)是非常恐怖的,那么就要想办法降低;就需要优化。

首先要知道 N=  a*a + b*b + c*c + d*d;

那么 a 一定不会超过 N / 4; b 一定不会超过 N / 3; c 一定不会超过 N / 2;

d 一定不会超过 N; 

其次我们可以先算 a 和 b,那么 N - a*a + b*b = c*c + d*d;

#include <iostream>
#include<map>
#include<cmath>
using namespace std;int main()
{//输入int N; cin >> N;map<int,int> exit;//c值存一下。for(int c = 0; c * c <= N / 2; c++){for(int d = c; c*c + d*d <= N; d++){if(exit.find(c * c + d * d) == exit.end())exit[c * c + d * d] = c;}}for(int a  = 0; a * a <= N / 4; a++){for(int b = a; a*a + b*b <= N / 3; b++){if(exit.find(N - a * a - b * b) != exit.end()){int c = exit[N - a * a - b * b];int d = (int)sqrt(N - a*a - b*b - c*c);cout << a << b << c << d << endl;//找到直接返回return 0;}}}return 0;
}

6.交换瓶子

题目解析:是不是会想到冒泡,但是你看看数据范围,那么就是肯定要优化;将当前元素与下标进行比较,如果相同直接跳过,不相同那么就要找到和下标相同的数据下标进行交换。

#include<iostream>using namespace std;
int a[10001];
int N;
int sum = 0;int pos(int x)
{for(int i = 1; i <= N; i++){if(a[i] == x){return i;}}return -1;
}void Swap(int i, int j)
{int tmp = a[i];a[i] = a[j];a[j] = tmp;
}int main()
{//数据处理;cin >> N;for(int i = 1; i <= N; i++){cin >> a[i];}//进行查寻for(int i = 1; i <= N; i++){if(a[i] == i)continue;else{//找到和下标不一样的数,和下标交换,不需要改变原来的值。Swap(pos(i), i);sum++;}}cout << sum << endl;return 0;
}

 7.最大比例

题目解析:本道题说到所有级别的奖金构成一个等比数列,先进行排序,将第一个数作为分母,分子分别都是后面的数,求取他们的最大公约数,再用两个数组将分子分母分别除以最大公约数,再存放起来。最后再对分子分母分别求差最小就会得到最终答案。

#include <iostream>
#include<algorithm>
using namespace std;#define N 100
long long max = 1000000000;
long long x[N], a[N], b[N];long long gcd(long long a, long long b)
{return b ? gcd(b, a % b) : a;
}long long gcd_sub(long long a, long long b)
{if(b == 1) return a;if(b > a)  swap(a, b);return gcd_sub(b, a / b);
}int main()
{//输入完成:int n;cin >> n;for(int i = 0; i < n; i++){cin >> x[i];}//排序sort(x, x + n);long long dd;//求最大公约数int cnt = 0;for(int i = 1; i < n; i++){if(x[i] != x[i-1]) //去除为1的情况{dd = gcd(x[i], x[0]);a[cnt] = x[i] / dd; //分子b[cnt] = x[0] / dd; //分母cnt++;}}long long up = a[0], down = b[0];for(int i = 1; i < cnt; i++){up = gcd_sub(up, a[i]);down = gcd_sub(down, b[i]);}cout << up << "/" << down;return 0;
}

其实静下心来感受会觉得题目不难,就是要找到规律,总结方法,写代码注意细节,那么绝对可以取得高分。

相关文章:

蓝桥杯第七届大学B组详解

目录 1.煤球数量&#xff1b; 2.生日蜡烛&#xff1b; 3.凑算式 4.方格填数 5.四平方和 6.交换瓶子 7.最大比例 1.煤球数量 题目解析&#xff1a;可以根据题目的意思&#xff0c;找到规律。 1 *- 1个 2 *** 3个 3 ****** 6个 4 ********** 10个 不难发现 第…...

荣誉 | 人大金仓连续三年入选“金融信创优秀解决方案”

3月28日&#xff0c;由中国人民银行领导&#xff0c;中国金融电子化集团有限公司牵头组建的金融信创生态实验室发布“第三期金融信创优秀解决方案”&#xff0c;人大金仓新一代手机银行系统解决方案成功入选&#xff0c;这也是人大金仓金融行业解决方案连续第三年获得用户认可。…...

【关于jupyter notebook】一打开就闪退的问题

在Anaconda Prompt中输入jupyter notebook发现是有个错误。 里面多了一个__init__.py的文件导致报错。删除之后&#xff0c;就可以使用了...

若依 3.8.7版本springboot前后端分离 整合mabatis plus

1.去掉mybatis 这一步我没有操作&#xff0c;看别人的博客有说不去掉可能冲突&#xff0c;也可能不冲突&#xff0c;我试下来就没去掉如需要去除&#xff0c;到总的pom.xml中properties标签下的<mybatis-spring-boot.version>x.x.x</mybatis-spring-boot.version>…...

vue做移动端自适应插件实现rem

1.实现方式 postcss-pxtorem&#xff1a;将px转换为rem amfe-flexible&#xff1a;为html、body提那家font-size&#xff0c;窗口调整的时候重新设置font-size 2.安装与使用 npm install amfe-flexible --save npm install postcss-pxtorem --save-dev 1.再main.js入口文件…...

android 快速实现 图片获取并裁剪(更换头像)

1.获取图片框架&#xff1a;https://github.com/LuckSiege/PictureSelector 2.图片裁剪框架&#xff1a;https://github.com/jdamcd/android-crop 3.Glide图片加载框架&#xff1a;https://github.com/bumptech/glide 2.build.gradle依赖&#xff1a; dependencies {// Pic…...

垃圾回收机制--GC 垃圾收集器--JVM调优-面试题

1.触发垃圾回收的条件 新生代 Eden区域满了&#xff0c;触发young gc (ygc)老年代区域满了&#xff0c;触发full gc (fgc)通过ygc后进入老年代的平均大小大于老年代的可用内存,触发full gc(fgc).程序中主动调用的System.gc()强制执行gc,是full gc&#xff0c;但是不必然执行。…...

Java基础知识总结(29)

Java虚拟机 运行时数据区 程序计数器 方法区&#xff1a;Java 8以后没有方法区&#xff0c;改为了元空间&#xff08;MetaSpace&#xff09; 虚拟机栈 堆 本地方法栈 程序计数器 它可以看作是当前线程所执行的字节码的行号指示器。在Java虚拟机的概念模型里&#xff0c…...

vue js金额转中文

在Vue.js项目中&#xff0c;实现金额转中文的功能通常涉及编写一个JavaScript方法来处理数字转换逻辑&#xff0c;并在Vue组件中调用该方法。下面是一个基本的示例&#xff0c;展示如何在Vue组件中定义一个计算属性或方法来实现这一功能&#xff1a; /*** 思路&#xff1a; …...

《QT实用小工具·二》图片文字转base64编码

1、概述 源码放在文章末尾 base64编码转换类 图片转base64字符串。base64字符串转图片。字符转base64字符串。base64字符串转字符。后期增加数据压缩。Qt6对base64编码转换进行了重写效率提升至少200%。 下面是demo演示&#xff1a; 项目部分代码如下所示&#xff1a; #ifn…...

Django安装及第一个项目

1、安装python C:\Users\leell>py --version Python 3.10.6 可以看出我的环境python的版本3.10.6&#xff0c;比较新 2、 Python 虚拟环境创建 2.1 官网教程 目前&#xff0c;有两种常用工具可用于创建 Python 虚拟环境&#xff1a; venv 在 Python 3.3 及更高版本中默…...

专升本-物联网

物联网&#xff08;IOT&#xff0c;Internet of things&#xff09; 体系结构&#xff1a; 感知层&#xff08;感知执行层&#xff09; 网络层 应用层 基本特征&#xff1a; 全面感知 可靠传输 智能处理 作用&#xff1a; 信息采集、转换、收集 信息传递和处理 数据…...

二叉树的遍历C语言

二叉树作为FDS课程最核心的数据结构之一&#xff0c;要求每个人都掌握&#xff01; 这是一道简单的二叉树问题&#xff01; 我们将给出一颗二叉树&#xff0c;请你输出它的三种遍历&#xff0c;分别是先序遍历&#xff0c;中序遍历&#xff0c;后序遍历&#xff01; 输入格式…...

PostgreSQL到Doris的迁移技巧:实时数据同步新选择!

PostgreSQL可以说是目前比较抢手的关系型数据库了&#xff0c;除了兼具多样功能和强大性能之外&#xff0c;还具备非常优秀的可扩展性&#xff0c;更重要的是它还开源&#xff0c;能火不是没有理由的。 虽然PostgreSQL很强大&#xff0c;但是它也有短板&#xff0c;相对于专业…...

【三维】关于万向节锁的直白解释

1. 分析理解 万向节长什么样子&#xff0c;请参考这篇文章中的图片&#xff1a;https://zhuanlan.zhihu.com/p/42519819。 看了很多篇解释性的文章&#xff0c;没怎么看懂。因为我个人最关注的问题点在于&#xff1a; 现实物体旋转为什么没有所谓的万向节锁的bug&#xff0c…...

程序员的修养 - 变量

变量几乎代码程序程序 中最基础的组成单元&#xff0c;程序员几乎无时无刻都在接触变量。但你对变量的理解真的足够吗&#xff1f; 首先&#xff0c;什么是变量&#xff1f;&#xff01; 第一层理解&#xff1a;一个可以改变的量&#xff0c;区别于常量&#xff0c;用户可以修…...

判断一个元素是否在可视区域中

文章目录 一、用途二、实现方式offsetTop、scrollTop注意 getBoundingClientRectIntersection Observer创建观察者传入被观察者 三、案例分析 参考文献 一、用途 可视区域即我们浏览网页的设备肉眼可见的区域&#xff0c;如下图 在日常开发中&#xff0c;我们经常需要判断目标…...

【Monero】Wallet RPC | Wallet CLI | 门罗币命令行查询余额、种子、地址等命令方法教程

ubuntu22.04 首先在运行daemon&#xff0c;详细安装运行教程可参考&#xff1a;The Monero daemon (monerod) ./monerodWallet CLI run ./monero-wallet-cli如果还没有钱包就根据提示创建钱包即可 输入密码 查询余额 balance查询种子 seed其他可执行命令操作&#xff1…...

FPGA----ZCU106的petalinux 2019.1使用USB传输数据

1、实际项目中需要用到开发板的串口进行数据交互&#xff0c;之前讲的几节只是启动了网口&#xff08;如下链接&#xff09;。因此&#xff0c;本次给大家带来的官方自带串口例程的使用方法&#xff0c;本文的vivado工程和下述连接一样&#xff0c;PL端什么配置都没有。 FPGA-…...

备考ICA----Istio实验10---为单个主机配置TLS Istio Ingress Gateway实验

备考ICA----Istio实验10—为单个主机配置 TLS Istio Ingress Gateway实验 1. 环境准备 部署httpbin kubectl apply -f istio/samples/httpbin/httpbin.yaml 2. 证书生成 2.1 生成根证书 生成根证书keyfile和crt文件 mkdir example_certs_root openssl req -x509 -sha256 …...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...

自然语言处理——文本分类

文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益&#xff08;IG&#xff09; 分类器设计贝叶斯理论&#xff1a;线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别&#xff0c; 有单标签多类别文本分类和多…...

动态规划-1035.不相交的线-力扣(LeetCode)

一、题目解析 光看题目要求和例图&#xff0c;感觉这题好麻烦&#xff0c;直线不能相交啊&#xff0c;每个数字只属于一条连线啊等等&#xff0c;但我们结合题目所给的信息和例图的内容&#xff0c;这不就是最长公共子序列吗&#xff1f;&#xff0c;我们把最长公共子序列连线起…...

验证redis数据结构

一、功能验证 1.验证redis的数据结构&#xff08;如字符串、列表、哈希、集合、有序集合等&#xff09;是否按照预期工作。 2、常见的数据结构验证方法&#xff1a; ①字符串&#xff08;string&#xff09; 测试基本操作 set、get、incr、decr 验证字符串的长度和内容是否正…...

【工具教程】多个条形码识别用条码内容对图片重命名,批量PDF条形码识别后用条码内容批量改名,使用教程及注意事项

一、条形码识别改名使用教程 打开软件并选择处理模式&#xff1a;打开软件后&#xff0c;根据要处理的文件类型&#xff0c;选择 “图片识别模式” 或 “PDF 识别模式”。如果是处理包含条形码的 PDF 文件&#xff0c;就选择 “PDF 识别模式”&#xff1b;若是处理图片文件&…...

分布式光纤声振传感技术原理与瑞利散射机制解析

分布式光纤传感技术&#xff08;Distributed Fiber Optic Sensing&#xff0c;简称DFOS&#xff09;作为近年来迅速发展的新型感知手段&#xff0c;已广泛应用于边界安防、油气管道监测、结构健康诊断、地震探测等领域。其子类技术——分布式光纤声振传感&#xff08;Distribut…...