蓝桥杯第 23 场 小白入门赛

news2024/12/26 10:57:41

一、前言

好久没打蓝桥杯官网上的比赛了,回来感受一下,这难度区分度还是挺大的

二、题目总览

三、具体题目

3.1 1. 三体时间【算法赛】

思路

额...签到题

我的代码

// Problem: 1. 三体时间【算法赛】
// Contest: Lanqiao - 第 23 场 小白入门赛
// URL: https://www.lanqiao.cn/problems/20058/learning/?contest_id=224
// Memory Limit: 256 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

#include<bits/stdc++.h>
using i64 = long long;
using u64 = unsigned long long;
using u32 = unsigned;
using pii = std::pair<int,int>;
constexpr int N = 1e5+5,M = 1e6+5,INF = 0x3f3f3f3f;
#define pb emplace_back
#define all(v) v.begin(),v.end()

void solve(){
	std::cout << 999*26/24 << ' ' << 999*26%24 << '\n';
}

int main(){
	std::cin.tie(nullptr)->sync_with_stdio(false);
	
	int tt = 1;
	// std::cin >> tt;
	for(int ti = 0;ti<tt;++ti){
		solve();
	}
	
	return 0;
}

3.2 2. 存储晶体【算法赛】

思路

直接平方判断大小就行了

我的代码

// Problem: 2. 存储晶体【算法赛】
// Contest: Lanqiao - 第 23 场 小白入门赛
// URL: https://www.lanqiao.cn/problems/20056/learning/?contest_id=224
// Memory Limit: 256 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

#include<bits/stdc++.h>
using i64 = long long;
using u64 = unsigned long long;
using u32 = unsigned;
using pii = std::pair<int,int>;
constexpr int N = 1e5+5,M = 1e6+5,INF = 0x3f3f3f3f;
#define pb emplace_back
#define all(v) v.begin(),v.end()

void solve(){
    int a,b;std::cin >> a >> b;
    int n;std::cin >> n;
    while(n--){
        int c;std::cin >> c;
        std::cout << (c*c<=a*a+b*b?"YES\n":"NO\n");
    }
}

int main(){
    std::cin.tie(nullptr)->sync_with_stdio(false);
    
    int tt = 1;
    // std::cin >> tt;
    for(int ti = 0;ti<tt;++ti){
        solve();
    }
    
    return 0;
}

3.3 3. 屏蔽信号【算法赛】

思路

简单的类gcd的模拟题

我的代码

// Problem: 3. 屏蔽信号【算法赛】
// Contest: Lanqiao - 第 23 场 小白入门赛
// URL: https://www.lanqiao.cn/problems/20057/learning/?contest_id=224
// Memory Limit: 256 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

#include<bits/stdc++.h>
using i64 = long long;
using u64 = unsigned long long;
using u32 = unsigned;
using pii = std::pair<int,int>;
constexpr int N = 1e5+5,M = 1e6+5,INF = 0x3f3f3f3f;
#define pb emplace_back
#define all(v) v.begin(),v.end()


void solve(){
    i64 a,b;std::cin >> a >> b;
    if(a<b) std::swap(a,b);
    int cnt = 0;
    while(b){
        i64 tmp = a-b;
        a = tmp;
        if(a<b) std::swap(a,b);
        ++cnt;
    }
    std::cout << cnt << '\n';
}

int main(){
    std::cin.tie(nullptr)->sync_with_stdio(false);
    
    int tt = 1;
    std::cin >> tt;
    for(int ti = 0;ti<tt;++ti){
        solve();
    }
    
    return 0;
}

3.4 4. 掩体计划【算法赛】

思路

题目要求是找到分支次数最小的叶子结点(起爆装置)的分支次数

我的代码

// Problem: 4. 掩体计划【算法赛】
// Contest: Lanqiao
// URL: https://www.lanqiao.cn/problems/20053/learning/?contest_id=224
// Memory Limit: 256 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

#include<bits/stdc++.h>
using i64 = long long;
using u64 = unsigned long long;
using u32 = unsigned;
using pii = std::pair<int,int>;
constexpr int N = 1e5+5,M = 1e6+5,INF = 0x3f3f3f3f;
#define pb emplace_back
#define all(v) v.begin(),v.end()

int n,m;
std::vector<std::vector<int>> edges(N);
std::vector<int> f(N);
std::vector<int> bomb;

void bfs(){
    std::queue<int> q;
    q.emplace(1);
    while(!q.empty()){
        auto t = q.front();
        q.pop();
        if(edges[t].size()>1){
            ++f[t];
        }
        for(const auto&to:edges[t]){
            if(!f[to]){
                f[to] = f[t];
                q.emplace(to);
            }
        }
    }
}

void solve(){
    std::cin >> n;
    for(int i = 0;i<n-1;++i){
        int u,v;std::cin >> u >> v;
        edges[u].pb(v);
        // edges[v].pb(u);
    }
    std::cin >> m;
    while(m--){
        int t;std::cin >> t;
        bomb.pb(t);
    }
    bfs();
    int ans = INF;
    for(const auto &b:bomb){
        ans = std::min(ans,f[b]);
    }
    std::cout << ans << '\n';
}

int main(){
    std::cin.tie(nullptr)->sync_with_stdio(false);
    
    int tt = 1;
    // std::cin >> tt;
    for(int ti = 0;ti<tt;++ti){
        solve();
    }
    
    return 0;
}

3.5 5. 智商检测【算法赛】

思路

线性dp,dp[i][j] 保存的是从前i个元素中删除j个元素得到的最大 gcd值,状态转移主要是考虑是否删除第i个元素,另外要注意的是i和j也存在限制关系

题解代码

// Problem: 5. 智商检测【算法赛】
// Contest: Lanqiao - 第 23 场 小白入门赛
// URL: https://www.lanqiao.cn/problems/20055/learning/?contest_id=224
// Memory Limit: 256 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

#include <bits/stdc++.h>
constexpr int N = 1e5 + 10;
int n, k;
int a[N];
#define gcd std::__gcd
int main(){
	std::cin.tie(nullptr)->sync_with_stdio(false);
    std::cin >> n >> k;
    for(int i = 1;i<=n;++i){
        std::cin >> a[i];
    }
    std::vector<std::vector<int>> dp(n+1,std::vector<int>(k+1,0));
    // dp[i][j] 从前i个元素中删除j个元素, 得到的最大 gcd
    for(int i = 1;i<=n;++i){
        dp[i][0] = gcd(dp[i-1][0],a[i]); // 初始化
    }
    for(int i = 1;i<=n;++i){
        for(int j = 1; j<=std::min(i,k);++j){
            if(i-1>=j) dp[i][j] = gcd(dp[i-1][j],a[i]);//可以不删, 即选择 a[i]
            dp[i][j] = std::max(dp[i-1][j-1],dp[i][j]);//删去 a[i], 并从前i-1个中选择删除j-1个元素
        }
    }
    std::cout << dp[n][k] << '\n';
    return 0;
}

3.6 6. 高能粒子【算法赛】

思路

看看大佬的思路

题解代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1000005;
ll ax[N];
ll ay[N];
struct node{
    ll x;
    ll posi;
}b[N];
bool cmp(node a,node b){
    return a.x<b.x;
}
ll t[N];
int main(){
    int n;scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%lld %lld",&ax[i],&ay[i]);    
    }
    int m;scanf("%d",&m);
    for(int i=1;i<=m;i++){
        scanf("%lld",&b[i].x);
        b[i].posi=i;
    }
    sort(b+1,b+1+m,cmp);
        for(int i=1;i<=n;i++){
            t[i]=ax[i]*b[1].x+ay[i];
        }
        sort(t+1,t+1+n);
        ll ans1=t[(n+1)/2];
        for(int i=1;i<=n;i++){
            t[i]=ax[i]*b[m].x+ay[i];
        }
        sort(t+1,t+1+n);
        ll ans2=t[(n+1)/2];
        if(ans1>ans2){
            printf("%lld ",b[1].posi);
            printf("%lld",ans1);
        }else{
            printf("%lld ",b[m].posi);
            printf("%lld",ans2);
        }
    return 0;
}

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

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

相关文章

前缀和篇——繁星斗斗数字交织中,觅得效率明月辉光(1)

前言 在这片无边无际的数字海洋中&#xff0c;如何从中提取出有价值的讯息&#xff0c;成为了计算机科学中的一项重要课题。前缀和算法&#xff0c;作为一种巧妙的技术&#xff0c;恰如其名——通过计算序列中各个元素的前缀和&#xff0c;能够为我们提供一种高效的查询方式&a…

STM32 HAL库 + LM2904运算放大器 + ADC + VDO温度传感器:电路设计及代码实现

本文将详细介绍如何使用STM32F407的HAL库&#xff0c;实现通过单通道ADC采集VDO温度传感器的信号&#xff0c;并通过串口将采集到的温度值打印输出。具体流程包括&#xff1a;通过分压电阻将获得VDO温度传感器的分压电压&#xff0c;再利用运算放大器LM2904对信号进行放大&…

Python酷库之旅-第三方库Pandas(252)

目录 一、用法精讲 1191、pandas.tseries.offsets.BusinessMonthBegin.n属性 1191-1、语法 1191-2、参数 1191-3、功能 1191-4、返回值 1191-5、说明 1191-6、用法 1191-6-1、数据准备 1191-6-2、代码示例 1191-6-3、结果输出 1192、pandas.tseries.offsets.Busine…

【Linux服务器】CPU问题排查

概述 总体排查思路 总体观察&#xff0c;htop命令观察系统负载程度 检查CPU占用高的进程检查CPU硬件信息是否为问题根源从宏观到细节分析系统IO情况最后检查系统日志 排查思路 系统负载 通过htop命令查看系统负载&#xff0c;通过系统负载可以判断系统是否繁忙&#xff0c;主…

详解MyBatis之篇一

目录 MyBatis 定义 使用MyBatis操作数据库 创建项目 配置 演示 UserInfo.java UserInfoMapper UserInfoMapperTest 数据准备 自动生成测试类 运行结果 MyBatis 定义 MyBatis 是一个优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避…

编译器优化技术

方法内联 逃逸分析 公共子表达式消除 数据边界检查消除

汽车IVI中控开发入门及进阶(三十五):架构QML App Architecture Best Practices

在Qt/QML工程的架构中,架构很重要,虽然本身它有分层,比如QML调用资源文件(图片等)显示GUI界面,后面的CPP文件实现界面逻辑,但是这个分类还有点粗。在实际开发中,界面逻辑也就是基于类cpp的实现,也开始使用各种面向对象的设计模式,实现更加优秀的开发架构,这点尤其在…

本地Docker部署个人在线音乐平台Melody结合内网穿透远程访问听音乐

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

异常--C++

文章目录 一、异常的概念及使用1、异常的概念2、异常的抛出和捕获3、栈展开4、查找匹配的处理代码5、异常重新抛出6、异常安全问题7、异常规范 二、标准库的异常 一、异常的概念及使用 1、异常的概念 异常处理机制允许程序中独立开发的部分能够在运行时就出现的问题进行通信并…

字符串p型编码

字符串p型编码 C 语言实现C 实现Java 实现Python 实现 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 给定一个完全由数字字符&#xff08;‘0’,‘1’,‘2’,…,‘9’&#xff09;构成的字符串str&#xff0c;请写出str的p型编码串。例如&…

UIlicious - 自动化端到端测试

在现代软件开发中&#xff0c;测试自动化已然成为产品交付质量的基石。而端到端测试&#xff08;E2E&#xff09;&#xff0c;作为验证整个应用流畅运行的关键&#xff0c;常常是测试工作中最具挑战性的一环。这时&#xff0c;一款简单高效的自动化测试工具——UIlicious&#…

机器学习:机器学习项目的完整周期

建立一个有价值的机器学习系统时&#xff0c;需要考虑和计划哪些步骤&#xff1f; 以语音识别为例演示机器学习项目的全周期&#xff1a;机器学习项目的第一步是对项目进行范围划分&#xff0c;即决定什么是项目和你想做什么&#xff0c;然后是收集数据&#xff0c;所以决定需…

浪潮X86服务器NF5280、8480、5468、5270使用inter VROC Raid key给NVME磁盘做阵列

Inter VROC技术简介 Intel Virtual RAID on CPU (Intel VROC) 简单来说就是用CPU的PCIE通道给NVME硬盘做Raid 更多信息可以访问官方支持页面 Raid Key 授权&#xff0c;即VROC SKU 授权主要有用的有2个标准和高级&#xff0c;仅Raid1的授权我暂时没见过。 标准 VROCSTANMOD …

ROS基本框架2——在ROS开发中创建并使用自定义消息(C++版本)

ROS基本框架2——在ROS开发中创建并使用自定义消息(C++版本) code review! 参考笔记 1.ROS基本框架1——编写简单的发布者和订阅者(C++和Python版本) 2.ROS基本框架2——在ROS开发中创建并使用自定义消息(C++版本) 文章目录 ROS基本框架2——在ROS开发中创建并使用自定义…

鸿蒙征文|鸿蒙技术分享:使用到的开发框架和技术概览

目录 每日一句正能量前言正文1. 开发环境搭建关键技术&#xff1a;2. 用户界面开发关键技术&#xff1a;3. 应用逻辑开发关键技术&#xff1a;4. 应用测试关键技术&#xff1a;5. 应用签名和打包关键技术&#xff1a;6. 上架流程关键技术&#xff1a;7. 后续维护和更新关键技术…

(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验二----网络分析(超超超详细!!!)

相信实验一大家已经完成了&#xff0c;对Arcgis已进一步熟悉了&#xff0c;现在开启第二个实验 ArcMap实验--网络分析 目录 ArcMap实验--网络分析 1.1 网络分析介绍 1.2 实验内容及目的 1.2.1 实验内容 1.2.2 实验目的 2.2 实验方案 2.3 实验流程 2.3.1 实验准备 2.3.2 空间校正…

go语言 Pool实现资源池管理数据库连接资源或其他常用需要共享的资源

go Pool Pool用于展示如何使用有缓冲的通道实现资源池&#xff0c;来管理可以在任意数量的goroutine之间共享及独立使用的资源。这种模式在需要共享一组静态资源的情况&#xff08;如共享数据库连接或者内存缓冲区&#xff09;下非 常有用。如果goroutine需要从池里得到这些资…

马铃薯病害识别(VGG-16复现)

VGG16-Pytorch实现马铃薯病害识别 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客 &#x1f356; 原作者&#xff1a;K同学啊 电脑系统&#xff1a;Windows11 显卡型号&#xff1a;NVIDIA Quadro P620 语言环境&#xff1a;python 3.9.7 编译器&am…

HCSIF: 中国区域2000-2022年高时空分辨率(500m)SIF数据集

日光诱导叶绿素荧光&#xff08;Solar-induced chlorophyll fluorescence, SIF&#xff09;被誉为“植被光合作用的探针”。2017年&#xff0c;搭载在Sentinel-5P卫星上的 TROPOMI (TROPOspheric Monitoring Instrument&#xff09;传感器成功发射&#xff0c;该卫星同时具有高…

STL:相同Size大小的vector和list哪个占用空间多?

在C中&#xff0c;vector和list是两种不同的序列容器。vector底层是连续的内存&#xff0c;而list是非连续的&#xff0c;分散存储的。因此&#xff0c;vector占用的空间更多&#xff0c;因为它需要为存储的元素分配连续的内存空间。 具体占用多少空间&#xff0c;取决于它们分…