Educational Codeforces Round 175 (Rated for Div. 2)

news/2025/2/28 0:51:24/文章来源:https://www.cnblogs.com/maburb/p/18742396

A. FizzBuzz Remixed

题意:求\([0, n]\)里有多少数模3和模5的值一样。

我是打表发现每15个数的开头3个数满足要求。

点击查看代码
void solve() {int n;std::cin >> n;std::cout << n / 15 * 3 + std::min(n % 15 + 1, 3) << "\n";
}

B. Robot Program

题意:坐标轴上从起点按照给定指令序列按顺序执行,如果到了0这个位置就从头开始执行指令,问\(k\)次指令后经过了几次0。

\(k\)很大,但如果我们经过0,就会陷入一个循环。于是先求几步可以到0,然后在计算从0到0这个循环需要几步,就可以之间计算还有多少个循环可以执行。

点击查看代码
void solve() {i64 n, x, k;std::cin >> n >> x >> k;std::string s;std::cin >> s;i64 ans = 0;for (int i = 0; x != 0 && i < n && k; ++ i) {-- k;if (s[i] == 'L') {-- x;} else {++ x;	}}  if (x == 0) {++ ans;for (int i = 0; i < n; ++ i) {if (s[i] == 'L') {-- x;} else {++ x;	}if (x == 0) {ans += k / (i + 1);break;}}}std::cout << ans << "\n";
}

C. Limited Repainting

题意:一个序列初始都是R,每个位置有一个价值。你可以选择\(k\)个区间把位置都变成B,有一个最终序列\(s\),如果最后你的序列和\(s\)有不一样的地方,代价就是不一样的地方的价值的最大值。求最小代价。

二分答案,如果\(s[i] = R\) && \(a[i] > mid\)则这个位置绝对不能选。否则其它可以选的位置就是一段段区间,如果一个区间有一个\(s[i] = B\) && \(a[i] > mid\)的地方就必须选。看必须选的区间数是不是小于等于\(k\)

点击查看代码
void solve() {int n, k;std::cin >> n >> k;std::string s;std::cin >> s;std::vector<int> a(n);for (int i = 0; i < n; ++ i) {std::cin >> a[i];}auto check = [&](int x) -> int {std::vector<int> b(n);for (int i = 0; i < n; ++ i) {if (s[i] == 'B') {b[i] = 1;} else if (s[i] == 'R' && a[i] <= x) {b[i] = 1;}}int cnt = 0;for (int i = 0; i < n; ++ i) {if (b[i] == 1) {int j = i;bool flag = s[i] == 'B' && a[i] > x;while (j + 1 < n && b[j + 1] == 1) {++ j;flag |= s[j] == 'B' && a[j] > x;}if (flag) {++ cnt;}i = j;}}return cnt <= k;};int l = 0, r = 1e9;while (l < r) {int mid = l + r >> 1;if (check(mid)) {r = mid;} else {l = mid + 1;}}std::cout << l << "\n";
}

D. Tree Jumps

题意:给你一棵树,根可以到其中任意一个儿子,但从深度为2的点开始,每个点只能去深度比它大一的点,且这个点不是它到儿子。求从根开始的不同路径树。

类似\(DAG\)图路径计数,我们只能一层一层走,那么我们就一层一层算,当前点可以从上一层除了父亲过了,那么记录到达每个点的路径数\(f\),以及每一层的点的路径数总和\(sum\),则以该点为终点的路径数为\(sum - f_{p_i}\)。其中\(p_i\)\(i\)的父亲。

代码省略了取模类

点击查看代码
void solve() {int n;std::cin >> n;std::vector<std::vector<int>> adj(n);std::vector<int> p(n);for (int i = 1; i < n; ++ i) {std::cin >> p[i];-- p[i];adj[p[i]].push_back(i);}std::vector<int> d(n);std::vector<std::vector<int>> g(n);auto dfs = [&](auto self, int u) -> void {g[d[u]].push_back(u);for (auto & v : adj[u]) {d[v] = d[u] + 1;self(self, v);}};dfs(dfs, 0);std::vector<Z> f(n);Z sum = 0;for (auto & u : adj[0]) {f[u] = 1;sum += 1;}Z ans = sum + 1;for (int i = 2; i < n; ++ i) {Z t = 0;for (auto & u : g[i]) {f[u] = sum - f[p[u]];t += f[u];}sum = t;ans += t;}std::cout << ans << "\n";
}

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

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

相关文章

【CodeForces训练记录】Educational Codeforces Round 175 (Rated for Div. 2)

训练情况赛后反思 CD连续卡题,D题树上层序遍历+加法原理,鉴定为基本的图论数据结构没学好 A题 直接打表,对于 i%3 = i%5 的情况,我们发现有三个一组,三个一组连续的数,每组第一个数之间差 15,所以我们 / 15 * 3 先把整组的数量算出来,再求是组内第几个,就能得到答案了…

软工五问

这个作业属于哪个课程 课程链接这个作业要求在哪里 作业要求这个作业的目标 学习使用markdown, 接触GitHub, 建立个人博客个人介绍 📋标签 广东湛江 人 期望成为 golang后端工程师 学习经历持续学习golang及其框架, 设计模式 持续学习后端各个组件的可靠高效解决方案兴趣爱好…

清华大学推出的5册免费的 DeepSeek 学习使用指南!

前言 在当今这个信息洪流、技术飞速迭代的时代,DeepSeek的横空出世极大地降低了普通人利用人工智能技术的门槛。然而,尽管机遇就在眼前,仍有不少朋友面对DeepSeek感到无从下手,不知如何利用它来紧握时代赋予的红利。对此,清华大学展现出了高度的社会责任感与前瞻性,推出了…

拆解分析行业头部米家绿米燃气报警器怎么样?

小米绿米天然气卫士拆解,内置Zigbee模组,需要连接Zigbee 3.0网关 或者 具备Zigbee 3.0网关功能的设备报警 天然气是每家每户日常生活中都会使用到的清洁能源,因此对于天然气的安全防护时刻不能放松。小米天然气卫士是小米与业内知名品牌 赛特威尔 联手打造的一款产品,可探测…

C++ DLL 供 C# AnyCPU 调用 【 OpenCV onnxruntime】

背景 C++ 打包的DLL用到 OpenCV,用到 onnxruntime C# 软件需要打包成Any CPU版本,即可以在 x86下使用,也可以在x64下使用 C# 前端想把 C++ dll与依赖放在单独的”Libs“文件夹中,不是"Dubug"下 难点: 在C++ 中, OpenCV 和 onnxruntime 分别有x64和x86两个版本,…

Mac本地部署DeepSeek(简洁版)

1. 下载ollama2. 安装ollma 无脑安装那么最小的1.5b模型就拥有15亿的参数量,而最大的671b则有6710亿个参数,我们要使用的是前面这6个规模较小的模型。ollama run deepseek-r1:8b要等一会我不相信黑夜将至 因为火把就在我的手中。

使用OpenLPA编辑eUICC卡片

使用OpenLPA编辑eUICC卡片原文地址: [https://github.com/EsimMoe/MiniLPA/blob/main/README_zh-CN.md] 原作者:EsimMoe 许可: AGPL-3.0 license精美的现代化 LPA UI特性良好的跨平台支持 (Windows, Linux, macOS) 更友好的用户界面 i18n 多语言支持 搜索与快捷跳转 自由地管理…

UltraRAG 框架全家桶

转载:清华等团队推出 UltraRAG 框架全家桶,让大模型读懂善用知识库!引言 RAG 系统的搭建与优化是一项庞大且复杂的系统工程,通常需要兼顾测试制定、检索调优、模型调优等关键环节,繁琐的工作流程往往让人无从下手。 近日,针对以上痛点,清华大学 THUNLP 团队联合东北大学…

2024/2/27日 日志 第一次测试案例分析(4)--登录与注册和仓库方面

UserMapper点击查看代码 package com.Moonbeams.mapper;import com.Moonbeams.pojo.User; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.ResultMap; import org.apache.ibatis.annotation…

基于Web的图书管理系统全面解析与实践指南

@目录一、项目背景与目标二、技术选型与开发工具(一)后端技术:Java 与 Servlet(二)前端技术:HTML、CSS 与 JavaScript(三)数据库:MySQL(四)开发工具:Eclipse三、系统架构设计(一)表示层(二)业务逻辑层(三)数据访问层四、功能模块详解(一)用户角色与权限管理…

Juniper SRX1500 防火墙 Internet与SDWAN分流配置

Chassis 管理接口fxp0 大多数SRX设备都有独立的管理接口,名称为fxp0。 低端一些的设备,比如SRX300/320是没有独立的fxp0的。 需要从接口中挑一个作为管理接口。 Interface Renumbering Juniper的堆叠叫Chassis, 堆叠的节点分别叫node0和node1。 堆叠建立以后, 在查看配置的…

逆向软件设计和开发

在软件技术迅猛发展的今天,逆向工程已成为理解、分析和改进现有软件系统的重要手段。旨在深入剖析目标软件的内部结构、功能逻辑和数据流,为软件维护、安全评估和功能扩展提供可靠依据。 在本次实验中,本人基于同学提供的一份C++课程设计的员工信息管理系统进行逆向工程开发…