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

文章目录

  • [A - DFS搜索](https://ac.nowcoder.com/acm/contest/67741/A)
  • [B - 关鸡](https://ac.nowcoder.com/acm/contest/67741/B)
  • [C - 按闹分配](https://ac.nowcoder.com/acm/contest/67741/C)
  • [E - 本题又主要考察了贪心](https://ac.nowcoder.com/acm/contest/67741/E)
  • [F - 鸡数题!](https://ac.nowcoder.com/acm/contest/67741/F)
  • [G - why买外卖](https://ac.nowcoder.com/acm/contest/67741/G)
  • [H - 01背包,但是bit](https://ac.nowcoder.com/acm/contest/67741/H)
  • [I - It's bertrand paradox. Again!](https://ac.nowcoder.com/acm/contest/67741/I)
  • [L - 要有光](https://ac.nowcoder.com/acm/contest/67741/L)
  • [M - 牛客老粉才知道的秘密](https://ac.nowcoder.com/acm/contest/67741/M)

A - DFS搜索

字符串匹配

int n;
string DD = "DFS", dd = "dfs";void solve() {int D = 0, d = 0;string s; cin >> n >> s;for (int i = 0; i < n; i ++)if (s[i] == DD[D]) D ++;else if (s[i] == dd[d]) d ++;cout << (D >= 3) << ' '  << (d >= 3) << endl;
}

B - 关鸡

有以下四种基本图形,排列组合即可

在这里插入图片描述

int n;
pii a[N];int solve() {cin >> n;for (int i = 0; i < n; i ++) cin >> a[i].bb >> a[i].aa;sort(a, a + n);int res = 3;bool down = false, L = false, R = false, left = false, right = false;bool ll = false, rr = false;for (int i = 0; i < n; i ++) {if (a[i].aa == 0 && a[i].bb == 2) down = true;if (a[i].aa == -1 && a[i].bb == 1) left = true;if (a[i].aa == 1 && a[i].bb == 1) right = true;if (a[i].aa < 0) ll = true;if (a[i].aa > 0) rr = true;if (i) {if (a[i].aa == a[i - 1].aa) {if (a[i].aa < 0) L = true;else R = true;} else if (a[i].aa - 1 == a[i - 1].aa && a[i].bb + a[i - 1].bb == 3) {if (a[i - 1].aa < 0) L = true;else if (a[i].aa > 0) R = true;}}}if (L && R || down && left && right) return 0;if (L && right && down || R && left && down) return 0;if (down && left || down && right || left && right) return 1;if (L && right || R && left || L && down || R && down) return 1;if (L && rr || R && ll) return 1;if (left && down && rr || right && down && ll) return 1;if (L || R || down || left || right || ll && rr) return 2;return 3;
}

C - 按闹分配

排序后,前缀和人等待的时间,二分查找鸡插队的时间点

int n, m;
ll t, q;
ll a[N];bool check(ll x) {int l = upper_bound(a + 1, a + n + 1, x) - a;ll res = (n - l + 1) * t;return res <= q;
}ll solve() {ll l = 0, r = a[n];while (l < r) {ll mid = (l + r) / 2;if (check(mid)) r = mid;else l = mid + 1;}return l + t;
}int main() {FastIOcin >> n >> m >> t;for (int i = 1; i <= n; i ++) cin >> a[i];sort(a + 1, a + n + 1);for (int i = 1; i <= n; i ++) a[i] += a[i - 1];while (m --) {cin >> q;cout << solve() << endl;}return 0;
}

E - 本题又主要考察了贪心

题为贪心误导人,暴力枚举情况,复杂度为 O ( T × 3 n ) ≤ 6 × 1 0 6 O(T\times 3^n)\le6\times 10^6 O(T×3n)6×106

int n, m, res;
int a[N], c[N];void dfs(int d = 0) {if (d == m) {for (int i = 1; i <= n; i ++) c[i] = a[i];sort(c + 1, c + n + 1);int t = upper_bound(c + 1, c + n + 1, a[1]) - c - 1;t = n + 1 - t;res = min(res, t);return;}int u = b[d].aa, v = b[d].bb;a[u] += 3;dfs(d + 1);a[u] -= 3;a[v] += 3;dfs(d + 1);a[v] -= 3;a[u] ++, a[v] ++;dfs(d + 1);a[u] --, a[v] --;
}int solve() {cin >> n >> m;for (int i = 1; i <= n; i ++) cin >> a[i];for (int i = 0; i < m; i ++) cin >> b[i].aa >> b[i].bb;res = n;dfs();return res;
}

F - 鸡数题!


G - why买外卖

前缀和即可

int n, m;
pii a[N];ll solve() {cin >> n >> m;for (int i = 0; i < n; i ++) cin >> a[i].aa >> a[i].bb;sort(a, a + n);for (int i = 1; i < n; i ++) a[i].bb += a[i - 1].bb;for (int i = n - 1; i >= 0; i --)if (a[i].aa - m <= a[i].bb) return a[i].bb + m;return m;
}

H - 01背包,但是bit


I - It’s bertrand paradox. Again!

概率分析,第一个人的概率更平均,答案不唯一,我大概意思一下,一发过了

int n, a, b;string solve() {cin >> n;a = b = 0;while (n --) {int x, y, r; cin >> x >> y >> r;x = max(abs(x), abs(y));if (x <= 70) a ++;else b ++;}if (1.0 * a / b > 1.2) return bb;return aa;
}

L - 要有光

计算阴影部分面积即可

double solve() {double c, d, h, w; cin >> c >> d >> h >> w;return c * w * 3;
}

M - 牛客老粉才知道的秘密

int solve() {int n; cin >> n;int res = n / 6;return n % 6 ? res * 2 : res;
}

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

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

相关文章

Linux定时删除log

编写删除脚本 logPath/data/cd $logPathecho "" > xiaozou/nohup.out配置定时任务 执行crontab -e 编辑新增定时任务 */30 * * * * sh /data/clear.sh查看定时任务执行log tail -f /var/log/cron

Unknown custom element:<xxx>-did you register the component correctly解决方案

如图所示控制台发现了爆红&#xff08;大哭&#xff09;&#xff1a; 报错解释&#xff1a; 当我们看到报错时&#xff0c;我们需要看到一些关键词&#xff0c;比如显眼的“component”和“name”这两个单词&#xff0c; 因此我们就从此处切入&#xff0c;大概与组件有关系。…

力扣(leetcode)第228题汇总区间(Python)

228.汇总区间 题目链接&#xff1a;228.汇总区间 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属于某个范围但不属于 num…

vue + element 页面滚动计算百分比 + 节流函数

html&#xff1a; <el-progress :percentage"scrollValue"></el-progress> js&#xff1a; data() {return {scrollValue: 0,} }, mounted() {window.addEventListener(scroll, this.handleScroll) // 监听页面滚动 }, beforeDestroy() {window.remov…

Spring Boot--07--@Repository 和@Mapper的区别

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.Repository的作用1.1 含义1.2 Repository与Service和Component有什么区别&#xff1f;1.3 使用场景单独使用Repository&#xff0c;需要配合使用MapperScannerCon…

深度学习的新前沿:突破、应用与挑战

引言 深度学习的快速发展已经在人工智能领域引起了革命性的变化。作为模仿人脑结构和功能的强大工具&#xff0c;深度神经网络在图像识别、自然语言处理、医学诊断等多个领域取得了显著成就。但是&#xff0c;随着技术的不断推进&#xff0c;深度学习也在不断地进化和扩展其能…

云上自动部署丨使用 Terraform 在 AWS 上搭建 DolphinDB

HashiCorp Terraform 是一款基础架构即代码工具&#xff0c;旨在实现 "Write, Plan, and Create Infrastructure as Code"。它通过配置文件来描述云资源的拓扑结构&#xff0c;包括虚拟机、存储账户和网络接口。Terraform 几乎支持市面上所有的云服务&#xff0c;能够…

一键部署FC超级马里奥web游戏

效果展示 安装 拉取镜像 #拉取镜像 docker pull stayhungrystayfoolish666/mario #创建并启动容器 docker run -d -p 10034:8080 --name maliao --restartalways stayhungrystayfoolish666/mario:latest 使用 浏览器打开 http://你的ip:10034/

2023年06月CCF-GESP编程能力等级认证Python编程三级真题解析

Python等级认证GESP(1~6级)全部真题・点这里 一、单选题(共15题,共30分) 第1题 高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执行代码。 A:编辑 B:保存 C:调试 D:编译 答案:D 第2题 二进制数 11.01 在十进制下是( )。 A:3.01 B:…

A系统数据表同步到B系统数据表

一、 事务操作 &#xff08;小量数据&#xff09; 事务操作通常用于确保数据的一致性和完整性。以下是一些常见的应用场景&#xff1a; 银行转账&#xff1a;当从一个账户向另一个账户转账时&#xff0c;需要确保两个操作&#xff08;从一个账户扣款和向另一个账户存款&#x…

标准的排序组合-算法

题目 有若干个字母&#xff0c;要求计算出长度为4的所有可能得组合 解题 排序组合最适用的就是回溯了&#xff0c;建议大家本地debug一层一层的看能好理解点 private static void getResult(List<String> source, Stack<String> temp, int curLength, int maxL…

C++ //练习 4.5 写出下列表达式的求值结果。

C Primer&#xff08;第5版&#xff09; 练习 4.5 练习 4.5 写出下列表达式的求值结果。 ( a ) -30 * 3 21 / 5 ( b ) -30 3 * 21 / 5 ( c ) 30 / 3 * 21 % 5 ( d ) -30 / 3 * 21 % 4 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;…

CSS实现文字大小自适应

遇到的问题&#xff1a; 在写页面的时候&#xff0c;兼容手机和PC页面&#xff0c;这样字体大小就需要根据页面的大小进行动态变化。 解决方法&#xff1a; clamp()函数 clamp() 函数的作用是把一个值限制在一个上限和下限区间&#xff0c;当这个值超过区间范围时&#xff0c;…

YOLO系列助力涨点!新SOTA让缺陷检测更准更快!附开源数据集下载

缺陷检测在工业自动化、质量控制、安全检测等多个实际应用中都有着广泛的需求。因此这个方向是相对容易发表高质量论文的&#xff0c;尤其是当研究涉及到创新的算法、改进的技术、新的应用场景或显著提高检测性能时。 在这其中&#xff0c;YOLO系列算法与缺陷检测的结合已经取…

malloc()函数、结构体、共用体、枚举 2月1日学习笔记

一、malloc&#xff08;&#xff09;函数 void* malloc(size_t size); 用于动态分配内存空间。 link (int*)malloc(size(int)); //申请一段为int大小的内存空间。 int* p (int*)malloc(sizeof(int)) 分配了一个 int 类型大小的内存空间&#xff0c;并将其起始地址赋给指针…

composer常用命令

查看全局配置信息 composer config -gl 设置镜全局像地址 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 去掉-g&#xff0c;即表示只有当前项目使用该镜像 批量安装composer项目依赖 composer install 执行该命令后&#xff0c;会读取当…

MySQL中where和having的区别

前言 数据库中的 WHERE 和 HAVING 子句在 SQL 查询中扮演着关键的角色&#xff0c;帮助我们有效地筛选和过滤数据。这两个子句虽然都用于限定结果集&#xff0c;但它们的应用场景和操作对象存在明显的区别。在理解和运用这两个子句的过程中&#xff0c;我们能够更灵活地进行数据…

golang sudog是什么?

sudog代表在等待队列中的goroutine&#xff0c;比如channel发送接受。由于goroutine和同步对象的关系是多对多&#xff0c;因此需要sudog映射 type sudog struct {// 指向的goroutineg *g// 指向前后sudog的指针next *sudogprev *sudog// 指向数据elem unsafe.Pointer // data…

【C语言】顺序表详解

目录 &#xff08;一&#xff09;顺序表是一种数据结构 &#xff08;二&#xff09;顺序表 &#xff08;1&#xff09;顺序表的必要性 &#xff08;2&#xff09;顺序表的概念及结构 i&#xff0c;线性表 &#xff08;3&#xff09;顺序表的分类 i&#xff0c;顺序表和…

Android SELinux:保护您的移动设备安全的关键

Android SELinux&#xff1a;保护您的移动设备安全的关键 1 引言 移动设备在我们的生活中扮演着越来越重要的角色&#xff0c;我们几乎把所有重要的信息都存储在这些设备上。然而&#xff0c;随着移动应用程序的数量不断增加&#xff0c;安全性也变得越来越关键。这就是为什么…