蓝桥杯第 23 场 小白入门赛

一、前言

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

二、题目总览

三、具体题目

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;
}

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

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

相关文章

使用 Pytorch 构建 Vanilla GAN

文章目录 一、说明二、什么是 GAN&#xff1f;三、使用 PyTorch 的简单 GAN&#xff08;完整解释的代码示例&#xff09;3.1 配置变量3.2 、PyTorch 加速3.3 构建生成器3.4 构建鉴别器 四、准备数据集五、初始化函数六、前向和后向传递七、执行训练步骤八、结果 一、说明 使用…

【Windows 11专业版】使用问题集合

博文将不断学习补充 I、设置WIN R打开应用默认使用管理员启动 1、WIN R输入 secpol.msc 进入“本地安全策略”。 2、按照如下路径&#xff0c;找到条目&#xff1a; “安全设置”—“本地策略”—“安全选项”—“用户账户控制&#xff1a;以管理员批准模式运行所有管理员” …

合规性要求对漏洞管理策略的影响

讨论漏洞管理中持续面临的挑战&#xff0c;包括确定漏洞的优先级和解决修补延迟问题。 介绍合规性要求以及自动化如何简化漏洞管理流程。 您认为为什么尽管技术不断进步&#xff0c;但优先考虑漏洞和修补延迟等挑战仍然存在&#xff1f; 企业基础设施日益复杂&#xff0c;攻…

IDEA全局设置-解决maven加载过慢的问题

一、IDEA全局设置 注意&#xff1a;如果不是全局设置&#xff0c;仅仅针对某个项目有效&#xff1b;例在利用网上教程解决maven加载过慢的问题时&#xff0c;按步骤设置却得不到解决&#xff0c;原因就是没有在全局设置。 1.如何进行全局设置 a.在项目页面&#xff0c;点击f…

Java - JSR223规范解读_在JVM上实现多语言支持

文章目录 1. 概述2. 核心目标3. 支持的脚本语言4. 主要接口5. 脚本引擎的使用执行JavaScript脚本执行groovy脚本1. Groovy简介2. Groovy脚本示例3. 如何在Java中集成 Groovy4. 集成注意事项 6. 与Java集成7. 常见应用场景8. 优缺点9. 总结 1. 概述 JSR223&#xff08;Java Spe…

oracle数据库的启动与关闭

一.oracle数据库的启动过程 启动实例&#xff08;Start the Instance&#xff09; 启动实例&#xff1a;一个Oracle数据库实例由内存结构和后台进程组成&#xff0c;启动实例时会加载这些内存结构和启动进程。实例是数据库的一个运行时环境&#xff0c;它包含了数据库的控制文…

【C++】自主实现stack/queue

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解C的自主实现stack/queue&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 1. stack2. queue 栈&#xff1a;后进先出 队列&#xff1a;先进先出 栈和队列…

Hive学习基本概念

基本概念 hive是什么&#xff1f; Facebook 开源&#xff0c;用于解决海量结构化日志的数据统计。 基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张表&#xff0c;并提供类SQL查询功能 本质是将HQL转化为MapReduce程序。 Hive处理的数据存储在H…

Android studio 签名加固后的apk文件

Android studio打包时&#xff0c;可以选择签名类型v1和v2&#xff0c;但是在经过加固后&#xff0c;签名就不在了&#xff0c;或者只有v1签名&#xff0c;这样是不安全的。 操作流程&#xff1a; 1、Android studio 对项目进行打包&#xff0c;生成有签名的apk文件&#xff…

CSS学习记录03

CSS背景 CSS 背景属性用于定义元素的背景效果。 CSS background-color background-color属性指定元素的背景色。 页面的背景色设置如下&#xff1a; body {background-color: lightblue; } 通过CSS&#xff0c;颜色通常由以下方式指定&#xff1a; 有效的颜色名称-比如“…

Unity类银河战士恶魔城学习总结(P155 More example on audio effects更多的音效细节)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址&#xff1a;https://www.udemy.com/course/2d-rpg-alexdev/ 本章节添加了更多的音效细节 音频管理器 AudioManager.cs 使得多个音效可以同时播放&#xff0c;注释掉以下代码 public void PlaySFX(in…

【分组去重】.NET开源 ORM 框架 SqlSugar 系列

&#x1f4a5; .NET开源 ORM 框架 SqlSugar 系列 &#x1f389;&#x1f389;&#x1f389; 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列…

openwrt利用nftables在校园网环境下开启nat6 (ipv6 nat)

年初写过一篇openwrt在校园网环境下开启ipv6 nat的文章&#xff0c;利用ip6tables控制ipv6的流量。然而从OpenWrt22版本开始&#xff0c;系统内置的防火墙变为nftables&#xff0c;因此配置方法有所改变。本文主要参考了OpenWRT使用nftables实现IPv6 NAT 这篇文章。 友情提示 …

IS-IS的原理

IS-IS的基本概念&#xff1a; 概述&#xff1a; IS-IS&#xff0c;中间系统到中间系统&#xff0c;是ISO国际标准化组织为它的无连接网络协议设计的一种动态路由协议 IS-IS支持CLNP网络和IP网络&#xff0c;采用数据链路层封装&#xff0c;区别于ospf只支持IP网络&#xff0…

006 MATLAB编程基础

01 M文件 MATLAB输入命令有两种方法&#xff1a; 一是在MATLAB主窗口逐行输入命令&#xff0c;每个命令之间用分号或逗号分隔&#xff0c;每行可包含多个命令。 二是将命令组织成一个命令语句文集&#xff0c;使用扩展名“.m”&#xff0c;称为M文件。它由一系列的命令和语句…

hhdb数据库介绍(10-31)

管理 数据恢复 执行数据恢复说明 恢复页面输入正确的恢复信息&#xff0c;提交恢复任务后跳转到恢复页面&#xff0c;任务状态显示“恢复中且有进度更新显示”&#xff0c;此时若触发删除操作&#xff0c;则提示“恢复执行中不能删除” 恢复期间计算节点会暂停服务&#xff…

IntelliJ IDEA配置(mac版本)

用惯了eclipse开发java的小伙伴们&#xff0c;初次接触IntelliJ IDEA可能会和我一样&#xff0c;多少有些不适感&#xff0c;在使用过程中总想着eclipse得对应功能。 接下来&#xff0c;我就总结下我日常开发中遇到的常用配置&#xff08;不包括快捷键&#xff0c;我认为每个人…

基于大数据python 豆果美食推荐数据可视化系统(源码+LW+部署讲解+数据库+ppt)

&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 很对人不知道选题怎么选 不清楚自己适合做哪块内容 都可以免费来问我 避免后期給自己答辩找麻烦 增加难度&#xff08;部分学校只有一次答辩机会 没弄好就延迟…

.NET8/.NETCore 依赖注入:自动注入项目中所有接口和自定义类

.NET8/.NETCore 依赖接口注入&#xff1a;自动注入项目中所有接口和自定义类 目录 自定义依赖接口扩展类&#xff1a;HostExtensions AddInjectionServices方法GlobalAssemblies 全局静态类测试 自定义依赖接口 需要依赖注入的类必须实现以下接口。 C# /// <summary>…

视频流媒体服务解决方案之Liveweb视频汇聚平台

一&#xff0c;Liveweb视频汇聚平台简介: LiveWeb是深圳市好游科技有限公司开发的一套综合视频汇聚管理平台&#xff0c;可提供多协议&#xff08;RTSP/RTMP/GB28181/海康Ehome/大华&#xff0c;海康SDK等&#xff09;的视频设备接入&#xff0c;支持GB/T28181上下级联&#xf…