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

蓝桥杯之模拟与枚举day1

Question1卡片(C/C++A组第一题)

file 这个是一道简单的模拟枚举题目,只要把对应每次的i的各个位都提取出来,然后对应的卡片数目减去1即可。属于打卡题目。注意for循环的特殊使用即可

#include <iostream>
using namespace std;
bool solve(int a[],int n)
{//模拟枚举while(n!=0){int tmp = n % 10;n /= 10;a[tmp]--;if(a[tmp]<0)return false;}return true;
}
int main()
{int cnt[10] = {0};// 请在此输入您的代码for(int i = 0; i <= 9 ;i++)cnt[i] = 2021;// int ret = 1;// bool flag = true;// flag = solve(cnt,1);// while(flag)// {//   ret++;//   flag = solve(cnt,ret);// }/*也可以用for循环*/for(int i = 1; ;i++)if(!solve(cnt,i)){cout<<i-1<<endl;return 0;}//记得最后要减去1// cout<<ret-1<<endl;return 0;
}

file

Question2回文日期(C/C++A组第七题)

file 在蓝桥杯官网上面显示这个题目属于困难,但是实际上很简单。直接枚举就行,但是注意要如何进行枚举,日期30进1,月份12进1。想清楚这个就是很简单的枚举了

//
// Created by jjh on 2023/11/10.
//
#include<iostream>
using namespace std;
/*
思路:
1、难点在于日期的遍历,要考虑好怎么进行进位
2、回文日期的判断,用一个八位数组就行
3、ABABBABA型特殊判断
*/
bool huiwen(int d)//回文字符串
{int a[8];for(int i = 0; i < 8; i++){int tmp = d % 10;a[7 - i] = tmp;d = d / 10;}int i = 0;while(a[i] == a[7-i])i++;return i>4;
}
bool huiwen1(int d)//特殊回文串判断
{int a[8];for(int i = 0; i < 8; i++){int tmp = d % 10;a[7 - i] = tmp;d = d / 10;}if(a[0] == a[2] && a[2] == a[5] && a[5] == a[7] )if(a[1] == a[3] && a[3] == a[4] && a[4] == a[6])if(a[0]!=a[1])return true;return false;
}
int main(){/*遍历日期,年 月 日日是30进一位,月是12进一位*/bool flag = false,flag1 = false;int ans1 = 0,ans = 0,d0;string d;cin>>d;d0 = stoi(d);//转化为数组int first = d0;while(true){if(huiwen(d0)&&!flag&&d0!=first){ans = d0;flag = true;}if(huiwen1(d0)&&!flag1&&d0!=first){ans1 = d0;flag1 = true;}if(flag&&flag1){cout<<ans<<endl<<ans1<<endl;return 0;}int tmp = d0 % 100;//获取日期最后两位tmp++;if(tmp > 30){int tmp1 = d0/100;int tmp2 = tmp1;tmp1 %= 100;tmp1++;if(tmp1 > 12){d0 = (((tmp2/100)+1)*100 + 1)*100 + 1;continue;}else{d0 = (tmp2 +1)*100 + 1;continue;}}d0++;}return 0;
}

Question3(C/C++A组第四题)赢球票

file 这个也是一道模拟的题目,难点在于如何拆分问题。面对这个问题,要有几个思考。

怎么在链上模拟环的移动?

这个是好办的,当pos = n的时候,我们将其归为为1即可。pos = 1

如何表示被拿走的卡片?

被拿走的卡片我们是不能访问计数的,用一个flag数组表示即可解决问题,但是在不同位置开始遍历的时候记得清零

哪个位置开始取得最大值?

这个问题我们是不知道的,所以要进行枚举,每一个位置都模拟一轮

游戏如何结束?

当我们选择的卡片数量为n的时候或者当我们数到的数比所有卡片的数量还要多!

tips:注意输出的答案不是能选择的最多卡片数目,而是能够赢得的最多球票数目,及卡片所代表的值!

代码:

//
// Created by jjh on 2023/11/10.
//
#include <iostream>
#include <cstring>using namespace std;
/** 思路:* 1、数组模拟环上面的移动* 2、flag[i] = 1表示i处已经被移走* 3、当已经移走所有卡片或者当前数的数大于n* */
int main(){int n,maxx = INT_MIN;cin>>n;int flag[n+1],a[n+1];memset(a,0,sizeof(a));for(int i = 1; i <= n; i++)cin>>a[i];for(int i = 1; i <= n; i++){memset(flag,false,sizeof(flag));int pos = i,cnt = 1,ans = 0,sum = 0;
//        while(cnt <= n && ans < n)while(1){if(!flag[pos]){if(a[pos] == cnt){sum += a[pos];flag[pos] = true;pos++;ans++;if(pos > n)pos = 1;cnt = 1;}else{cnt++;pos++;if(pos > n)pos = 1;}}else{pos++;if(pos > n)pos = 1;}if(cnt > n || ans == n)break;}maxx = max(maxx,sum);}cout<<maxx<<endl;return 0;
}

Question4(C/C++A组第二题)

file 实质上就是看你会不会求最大公约数!打卡题

//
// Created by jjh on 2023/11/10.
//
#include <iostream>
using namespace std;
/** 思路:本质上就是一个判断最大公约数的题目,暴力枚举就行* */
int check(int i,int j)
{return j == 0 ? i : check(j,i%j);
}
long long ans;
int main(){for(int i = 1; i <= 2020;i++)for(int j = 1; j <= 2020;j++)if(check(i,j) == 1)ans++;cout<<ans<<endl;return 0;
}

Question5(C/C++A组第4题)数的分解

file 这个显然是一个暴力枚举法,记得去重就可。

易得:

   for(int i = 1; i <= 2019;i++)for(int j = 1 ;j <= 2019 ;j++)for(int k = 1; k <= 2019;k++)if(i + j + k == 2019 && !check(i)&&!check(j)&&!check(k)&&i!=j&&j!=k&&i!=k)ans++;ans/=6;

但是这个复杂度太高了,那能不能进行优化呢?当然是可以的!

首先我们可以确定i,j,k的次序,省去去重操作了。

还有就是我们可以利用flag数组提前计算出哪些数字包含有2/4。进一步,我们实际上可以利用两重循环来解决问题,k那层直接用 2019 -i - j代替.!

//
// Created by jjh on 2023/11/10.
//
#include <iostream>
using namespace std;
int n;
/** 题目关键点:* 1、如何去重* 2、如何判断是否含有数字2或者4* */
bool check(int n)
{bool flag = false;while(n!=0&&!flag){int tmp = n % 10;n /= 10;if(tmp == 2 || tmp == 4)flag = true;}return flag;
}
long long ans;
bool flag[2020];
int main(){for(int i = 1 ;i <= 2019;i++)if(check(i))flag[i] = true;
//    for(int i = 1; i <= 2019;i++)
//        for(int j = 1 ;j <= 2019 ;j++)
//            for(int k = 1; k <= 2019;k++)
//                if(i + j + k == 2019 && !check(i)&&!check(j)&&!check(k))
//                    ans++;//去重//    cout<<ans / 6<<endl;for(int i = 1; i <= 2019;i++)for(int j = i+1;j < 2019 - i - j;j++)if(!flag[i] && !flag[j] &&!flag[2019 - i - j])ans++;cout<<ans<<endl;return 0;
}

本文由博客一文多发平台 OpenWrite 发布!

相关文章:

蓝桥杯之模拟与枚举day1

Question1卡片(C/CA组第一题) 这个是一道简单的模拟枚举题目&#xff0c;只要把对应每次的i的各个位都提取出来&#xff0c;然后对应的卡片数目减去1即可。属于打卡题目。注意for循环的特殊使用即可 #include <iostream> using namespace std; bool solve(int a[],int n…...

深度学习 python opencv 动物识别与检测 计算机竞赛

文章目录 0 前言1 深度学习实现动物识别与检测2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存…...

爱家房产网站源码 爱家房产网商业版 微信互动营销整合+手机触屏版+经纪人分销

房产网站源码手机访问自动转手机版修改修复如下&#xff1a; 1&#xff0c;修复手机版首页标题头部名称 2&#xff0c;修复手机版首页频道导航按钮 3&#xff0c;新增手机版广告位置显示方式 4&#xff0c;修复手机版首页内容显示样式 5&#xff0c;手机版头部背景颜色ic…...

招聘信息采集

首先&#xff0c;我们需要使用PHP的curl库来发送HTTP请求。以下是一个基本的示例&#xff1a; <?php // 初始化curl $ch curl_init();// 设置代理 curl_setopt($ch, CURLOPT_PROXY, "jshk.com.cn");// 设置URL curl_setopt($ch, CURLOPT_URL, "http://www…...

java开发宝典

Java命名规范 1&#xff1a;代码中的命名均不能以下划线或美元符号开始&#xff0c;也不能以下划线或美元符号结束。 反例&#xff1a;_name / __name / $name / name_ / name$ / name__ 。 2&#xff1a;禁止使用拼音和英文混合。 反例&#xff1a;DaZhePromotion [打折] / …...

【图论实战】 Boost学习 03:dijkstra_shortest_paths

文章目录 示例代码 示例 最短路径: A -> C -> D -> F -> E -> G 长度 16 代码 #include <iostream> #include <boost/graph/adjacency_list.hpp> #include <boost/graph/dijkstra_shortest_paths.hpp> #include <boost/graph/graphviz.h…...

嵌入式养成计划-52----ARM--开发板介绍--相关硬件基础内容介绍--GPIO讲解

一百三十一、开发板介绍 131.1 核心板介绍 131.2 拓展板 一百三十二、相关硬件基础内容介绍 132.1 PCB PCB&#xff08; Printed Circuit Board&#xff09;&#xff0c;中文名称为印制电路板&#xff0c;又称印刷线路板&#xff0c; 是重要的电子部件&#xff0c;是电子元器…...

线性代数-Python-04:线性系统+高斯消元的实现

文章目录 1 线性系统2 高斯-jordon消元法的实现2.1 Matrix2.2 Vector2.3 线性系统 3 行最简形式4 线性方程组的结构5 线性方程组-通用高斯消元的实现5.1 global5.2 Vector-引入is_zero5.3 LinearSystem5.4 main 1 线性系统 2 高斯-jordon消元法的实现 2.1 Matrix from .Vecto…...

python能用来做什么

Python是一种流行的编程语言&#xff0c;由Guido van Rossum创建&#xff0c;并于1991年发布。 它用于&#xff1a; Web开发&#xff08;服务器端&#xff09;&#xff1b; 软件开发&#xff0c;数学计算&#xff0c;系统脚本编写。 Python能做什么&#xff1f; Python可以…...

springboot引入外部jar,package打包报错找不到程序包XXX

springboot引入外包jar包有两种方法&#xff1a; 一、第一种&#xff1a; 点击idea左上角file&#xff0c;然后点击project选择Modules&#xff0c;点击右侧Dependencies&#xff0c;点击右侧加号选择JARs or directories,然后选择要导入的jar包。这种方式&#xff0c;引入ja…...

GDPU 数据结构 天码行空9

实验九 哈夫曼编码 一、【实验目的】 1、理解哈夫曼树的基本概念 2、掌握哈夫曼树的构造及数据结构设计 3、掌握哈夫曼编码问题设计和实现 二、【实验内容】 1、假设用于通信的电文仅由8个字母 {a, b, c, d, e, f, g, h} 构成&#xff0c;它们在电文中出现的概率分别为{ 0.…...

ISP算法——UVNR

ISP算法——UVNR 概念简介 UVNR也就是经过CSC只有在YUV域对UV两个色域进行降噪&#xff0c;在有些方案里也叫CNR&#xff08;chroma noise reduction&#xff09;。主要就是在YUV域针对彩燥进行特殊处理的一系列算法。 关于噪声产生的原因在前面关于降噪的文章和视频中已经做…...

双十一“静悄悄”?VR购物拉满沉浸式购物体验

以往每年的双十一&#xff0c;都会因为电商购物狂欢而变得热闹非凡&#xff0c;而各大电商平台也会在这天推出各种促销活动。但是&#xff0c;近几年来&#xff0c;双十一正在变得“静悄悄”。一个原因是消费群体越发理性消费&#xff0c;更加重视商品本身的质量和体验&#xf…...

(动手学习深度学习)第13章 计算机视觉---图像增广与微调

13.1 图像增广 总结 数据增广通过变形数据来获取多样性从而使得模型泛化性能更好常见图片增广包裹翻转、切割、变色。 图像增广代码实现...

Linux安装MySQL8.0服务

Linux安装MySQL8.0服务 文章目录 Linux安装MySQL8.0服务一、卸载1.1 查看mariadb1.2 卸载 二、安装2.1 下载2.2 上传2.3 解压2.4 重命名2.5 删除2.6 创建目录2.7 环境变量2.8 修改配置2.9 配置文件2.9 用户与用户组2.10 初始化2.11 其它 三、开启远程连接MySQL 一、卸载 首先第…...

地区 IP 库

地区 & IP 库 yudao-spring-boot-starter-biz-ip (opens new window)业务组件&#xff0c;提供地区 & IP 库的封装。 #1. 地区 AreaUtils (opens new window)是地区工具类&#xff0c;可以查询中国的省、市、区县&#xff0c;也可以查询国外的国家。 它的数据来自 …...

MySQL查询语句练习题,测试基本够用了

1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下&#xff1a; CREATE TA…...

删除word最后一页之后的空白页

最近编辑word比较多&#xff0c;有时最后一页&#xff08;最后一页内容还有可能是表格&#xff09;之后&#xff0c;还有一页空白页&#xff0c;单独按下backspace、del都删不掉&#xff0c;很让人着急。 经过查询有几种方法&#xff1a; &#xff08;1&#xff09;点击选中空…...

基于站点、模式、遥感多源降水数据融合实践技术应用

降水在水循环中发挥着重要作用&#xff0c;塑造了生态景观和生态系统。目前&#xff0c;有四种主要方式获取降水数据&#xff1a;1&#xff09;雨量计观测&#xff0c;2&#xff09;地基雷达遥感&#xff0c;3&#xff09;卫星遥感&#xff0c;4&#xff09;模式模拟。基于雨量…...

html与django实现多级数据联动

html与django实现多级数据联动 1、流程 1、进入页面后先获取年级数据 2、选择年级后获取院级数据 3、选择院级后获取层次数据 4、选择层次数据后获取专业数据 2、html代码 <p style"margin-top: 10px;"><label>年级</label><select id"…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...