蓝桥杯第22场小白入门赛

news/2024/11/20 5:59:41/

刚好牛客周赛和蓝桥杯周赛时间撞了,于是毅然决然选择了打牛客,结局是本蒟蒻被牛客薄纱/(ㄒoㄒ)/~~

好吧,然后第二天就来水一水蓝桥杯了(bushi),小白入门赛和前几次一样,6道题只能写5道(什么时候能让我AK,AK了我就不是小白了)


目录

1.变身

2.消灭卡片

​编辑 ​编辑

3.招募队员

4.能量晶石 

5.缺失的环节

6.召唤帝皇侠

 





1.变身

相信大家闭着眼睛也能写出来 /(ㄒoㄒ)/~~

 cout<<5<<endl;

2.消灭卡片

 

思路 :如果能被5整除就直接输出n/5,反之我们对3得个数从0开始枚举,如果n-3*i能够被5整除,就直接输出i+(n-3*i)/5,如果循环了10的6次方还没有那就直接输出-1,为什么要用3枚举呢,是因为我们要尽可能的是5的贡献更大,即组成这个数3的个数尽可能少,5的个数尽可能多,同理用5枚举的话要从大到小枚举,但这样耗时往往会比枚举3的多。

Code:

#include <iostream>
using namespace std;
int main()
{// 请在此输入您的代码int t;cin>>t;while(t--){int sum=0;int n;cin>>n;if(n%5==0){cout<<n/5<<endl;}else{int mind=1e9;for(int i=0;i<=n/3;i++){int yu=n-3*i;if(yu%5) continue;else{mind=min(mind,i+yu/5);break;}}if(mind==1e9) cout<<-1<<endl;else cout<<mind<<endl;}}return 0;
}

3.招募队员

思路: 就是计算一个数字最多会连续出现几次,模拟就行了

Code:

#include <iostream>
#include <unordered_map>using namespace std;constexpr  int N = 1e5+5;int cnt[N],ans[10],a[N][10];
unordered_map<int,int> mp;
int main()
{// 请在此输入您的代码int n;cin>>n;for(int i=1;i<=n;i++){int b[6]={0};for(int j=1;j<=5;j++){cin>>a[i][j];if(mp[a[i][j]]&&!b[a[i][j]]){cnt[a[i][j]]++;ans[a[i][j]]=max(ans[a[i][j]],cnt[a[i][j]]);}if(!mp[a[i][j]]){cnt[a[i][j]]=1;mp[a[i][j]]= 1;ans[a[i][j]]=max(ans[a[i][j]],cnt[a[i][j]]);}b[a[i][j]]=1;}for(int j=1;j<=5;j++)if(!b[j]){mp[j]=0;cnt[j]=0;}}for(int i=1;i<=5;i++) cout<<ans[i]<<' ';return 0;
}

4.能量晶石 

思路 :贪心+排序。要使次数最小,则数组的最大值要尽可能小,所以先将数组从小到大排序,从后面开始遍历,每次用后面的数字减去a[0],就是当前这个人要跑的次数,然后a[0]的大小就与当前这个数一样,而其他人增加的数就是这两个数的差值,所以我们只需要累加数组的所有数字更新后与a[0]的差值即可。

Code:

#include <iostream>
#include <vector>
#include <algorithm>
#define int long long
using namespace std;constexpr int N = 1e5+5;int a[N],n;int32_t main()
{// 请在此输入您的代码cin>>n;vector<int> v(n);for(auto &t:v) cin>>t;sort(v.begin(),v.end());//v.erase(unique(v.begin(),v.end()),v.end());int d=0;int len=v.size();for(int i=1;i<len;i++){v[len-i]+=d;d+=v[len-i]-v[0];;v[0]=v[len-i];}cout<<d;return 0;
}

5.缺失的环节

思路: 因为是连续的字符串,所以我们只需要从0开始枚举,每次将十进制转换成二进制字符串,然后判断这个二进制字符串是不是S的子串,如果是的话说明S的某个区间可以组成这个数,反之则是S不存在的数。

Code:

#include <iostream>
#include <cstring>
#include <algorithm>
#define int long long
using namespace std;
int32_t main()
{// 请在此输入您的代码int n;cin>>n;string s;cin>>s;reverse(s.begin(),s.end());int sum=0;for(int i=0;i<=1000000;i++){string temp="";if(i==0){temp+="0";}else{int a=i;while(a){temp+=a%2+'0';a/=2;}while(temp.back()=='0'&&temp.size()>1) temp.pop_back();}if(s.find(temp)==-1){cout<<i;break;} }return 0;
}

6.召唤帝皇侠

思路 :数学。这里附上某位大佬的题解

Code:

#include <iostream>
#include <cmath>
#include <unordered_map>
#define int long long
using namespace std;
constexpr int mod=998244353;int32_t main()
{// 请在此输入您的代码int t;cin>>t;while(t--){int x;cin>>x;int ed=floor(sqrt(x));int sum=0;sum=((sum+ed*ed%mod-1)*ed%mod)%mod;sum=(sum+ed*ed%mod)%mod;if(ed*ed+ed<=x){sum=(sum+ed*ed+ed%mod)%mod;} if(ed*ed+2*ed<=x)sum=(sum+ed*ed%mod+2*ed%mod)%mod;cout<<sum<<endl;}return 0;
}


http://www.ppmy.cn/news/1548424.html

相关文章

【Vue笔记】基于vue3 + element-plus + el-dialog封装一个自定义的dialog弹出窗口组件

这篇文章,介绍一下如何使用vue3+element-plus中的el-dialog组件,自己封装一个通用的弹出窗口组件。运行效果如下所示: 目录 1.1、父子组件通信 1.2、自定义VDialog组件(【v-model】模式) 1.2.1、编写VDialog组件代码 1.2.2、使用VDialog组件 1.2.3、运行效果 1.3、自…

Vue3项目实战(vue3+vite+pinia+element-plus+axios+mock)

许苑后台管理系统 一、项目介绍1、技术栈2、业务功能3、应用场景4、项目源码 二、项目实战2.1、项目初始化2.2、项目实战1、引入router配置2、App.vue组件引入3、创建RootView根路由组件4、依次创建5、进行对应各个环境的配置环境设置 一、项目介绍 1、技术栈 vue3vitevue-rou…

《YOLO:目标检测领域的璀璨之星》

《YOLO&#xff1a;目标检测领域的璀璨之星》 一、YOLO 目标检测算法二、YOLO 的技术原理&#xff08;一&#xff09;YOLOv1 的原理&#xff08;二&#xff09;后续版本的改进 三、YOLO 与其他目标检测算法的比较&#xff08;一&#xff09;与 DETR 的比较&#xff08;二&#…

倒计时功能分享

今天想要分享的是一个面试题&#xff0c;也是一个我们在项目中常用的功能&#xff1a;倒计时。 首先我们在写倒计时的时候必须要考虑到是&#xff1a;准确性、性能。接下来我们一步一步实现这个完美地倒计时功能。 setInterval 先来简单实现一个倒计时的函数&#xff1a; func…

蓝桥杯每日真题 - 第14天

题目&#xff1a;&#xff08;2022&#xff09; 题目描述&#xff08;13届 C&C B组A题&#xff09; 解题思路&#xff1a; 定义状态&#xff1a; 使用一个二维数组 dp[j][k] 来表示将数字 k 拆分为 j 个不同正整数的方案数。 初始化&#xff1a; 初始状态设定为 dp[0][0]…

实用教程:如何无损修改MP4视频时长

如何在UltraEdit中搜索MP4文件中的“mvhd”关键字 引言 在视频编辑和分析领域&#xff0c;有时我们需要深入到视频文件的底层结构中去。UltraEdit&#xff08;UE&#xff09;和UEStudio作为强大的文本编辑器&#xff0c;允许我们以十六进制模式打开和搜索MP4文件。本文将指导…

鸿蒙生态开发以及技术栈介绍

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;鸿蒙开发篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来鸿蒙开发篇专栏内容: 有没有可以2小时不用手机的&#xff1f; 打开电视用什么&#xff1f; 打开空调用什么&a…

React教程第二节之虚拟DOM与Diffing算法理解

1、什么是虚拟DOM 虚拟DOM 是javascript的一个对象&#xff0c;是内存中的一种数据结构&#xff0c;以树的形式存储UI的状态&#xff0c;树中的每个节点都代表着真实的DOM&#xff0c;用来描述我们希望在页面看到的 HTML结构&#xff1b; 现在的MVVM 框架&#xff0c;大多使用…