【持续更新】2024牛客寒假算法基础集训营4 题解 | JorbanS

本文主要是介绍【持续更新】2024牛客寒假算法基础集训营4 题解 | JorbanS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

A - 柠檬可乐

string solve() {int a, b, k; cin >> a >> b >> k;return a >= k * b ? "good" : "bad";
}

B - 左右互博

每次将一堆石子分成两堆,必然最后结果会多一个 1 1 1,因此只要看能多几个 1 1 1,即为可以操作的次数

string solve() {cin >> n;ll sum = 0;for (int i = 0; i < n; i ++) cin >> a[i], sum += a[i];return sum - n & 1 ? "gui" : "sweet";
}

C - 冬眠

暴力模拟

char solve() {cin >> n >> m >> x >> y;for (int i = 0; i < n; i ++) cin >> s[i];cin >> p >> q;for (int i = 0; i < q; i ++) {cin >> e[i].aa >> e[i].bb;e[i].bb --;}while (p --) {for (int i = 0; i < q; i ++) {if (e[i].aa == 1) {char c = s[e[i].bb][m - 1];for (int j = m - 1; j; j --) s[e[i].bb][j] = s[e[i].bb][j - 1];s[e[i].bb][0] = c;} else {char c = s[n - 1][e[i].bb];for (int j = n - 1; j; j --) s[j][e[i].bb] = s[j - 1][e[i].bb];s[0][e[i].bb] = c;}}}return s[-- x][-- y];
}

D - 守恒

重新分配数,由于 g c d × k = s u m , k ≥ n gcd\times k=sum,~k\ge n gcd×k=sum, kn,故 g c d ∣ n gcd|n gcdn

注意特判 n = 1 n=1 n=1

ll solve() {cin >> n;ll sum = 0, res = 0;for (int i = 0; i < n; i ++) cin >> a[i], sum += a[i];for (int i = 1; i <= sum / n; i ++)if (sum % i == 0) res ++;if (n == 1) return 1;return res;
}	

E - 漂亮数组

只许看前缀和相同的区间点,每次找到后 c l e a r clear clear 前面的已经被选择过的

int solve() {cin >> n >> k;int idx = 0;map<int, int> mp;for (int i = 1; i <= n; i ++) {cin >> a[i];a[i] += a[i - 1];a[i] %= k;}set<int> s;s.insert(0);int res = 0;for (int i = 1; i <= n; i ++) {if (s.count(a[i])) {res ++;s.clear();}s.insert(a[i]);}return res;
}

F - 来点每日一题


G - 数三角形(easy)

前缀和查询底边是否存在,总复杂度 O ( n 3 ) O(n^3) O(n3)

ll solve() {cin >> n >> m;for (int i = 0; i < n; i ++) cin >> s[i];for (int i = 0; i < n; i ++)for (int j = 0; j < m; j ++)a[i][j + 1] = a[i][j] + (s[i][j] == '*');ll res = 0;for (int i = 0; i < n; i ++)for (int j = 1; j < m - 1; j ++) {if (s[i][j] == '.') continue;for (int k = 1; k <= min(j, min(m - 1 - j, n - 1 - i)); k ++) {if (s[i + k][j - k] == '*' && s[i + k][j + k] == '*') {if (a[i + k][j + k + 1] - a[i + k][j - k] >= k * 2 + 1) res ++;} else break;}}return res;
}

这篇关于【持续更新】2024牛客寒假算法基础集训营4 题解 | JorbanS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/727037

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

Python WebSockets 库从基础到实战使用举例

《PythonWebSockets库从基础到实战使用举例》WebSocket是一种全双工、持久化的网络通信协议,适用于需要低延迟的应用,如实时聊天、股票行情推送、在线协作、多人游戏等,本文给大家介... 目录1. 引言2. 为什么使用 WebSocket?3. 安装 WebSockets 库4. 使用 We

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

linux安装、更新、卸载anaconda实践

《linux安装、更新、卸载anaconda实践》Anaconda是基于conda的科学计算环境,集成1400+包及依赖,安装需下载脚本、接受协议、设置路径、配置环境变量,更新与卸载通过conda命令... 目录随意找一个目录下载安装脚本检查许可证协议,ENTER就可以安装完毕之后激活anaconda安装更