【持续更新】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

相关文章

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

Linux Mint Xia 22.1重磅发布: 重要更新一览

《LinuxMintXia22.1重磅发布:重要更新一览》Beta版LinuxMint“Xia”22.1发布,新版本基于Ubuntu24.04,内核版本为Linux6.8,这... linux Mint 22.1「Xia」正式发布啦!这次更新带来了诸多优化和改进,进一步巩固了 Mint 在 Linux 桌面

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

Ubuntu 24.04 LTS怎么关闭 Ubuntu Pro 更新提示弹窗?

《Ubuntu24.04LTS怎么关闭UbuntuPro更新提示弹窗?》Ubuntu每次开机都会弹窗提示安全更新,设置里最多只能取消自动下载,自动更新,但无法做到直接让自动更新的弹窗不出现,... 如果你正在使用 Ubuntu 24.04 LTS,可能会注意到——在使用「软件更新器」或运行 APT 命令时,

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第