Educational Codeforces Round 159 (Rated for Div. 2) 题解 A-C

目录

A - Binary Imbalance

原题链接

题目描述
给你一个只包含字符 01的字符串 s s s。在每次操作中,你可以从任意两个字符间插入一个字符:如果两个相邻的字符相等,那么你只可以插入1,否则,你只可以插入0。是否有可能使用任意数量的运算,使 s s s0的个数严格大于1的个数?

思路:观察

  • 只要存在两个相邻的字符不相等,那么可以在中间无限插入0,使得其数量大于1的数量。
public static void solve() throws IOException {int n = readInt();String s = readString();int z = 0, o = 0;if (!s.contains("0")) {printWriter.println("NO");} else {printWriter.println("YES");}
}

B - Getting Points

原题链接

题目描述
一个学期有N天,为了不被开除,你需要在这N天内至少拿到P学分。你每完成一项实践任务,就能获得t分;每上一堂课,他就能获得l分,其中实践任务每周一会解锁一个,而课程每天都有。每天,你都可以选择是学习还是休息一整天。当你决定学习时,你可以上一堂课,并完成不超过2个已解锁但未完成的实践任务。如果你选择休息一整天,那么你将什么也不做。现在你希望休息的天数最大化,问最多可以休息多少天

思路:二分+分类讨论

  • 最大化休息的天数,那么可以理解为最小化学习的天数。
  • 二分枚举学习的天数,分类讨论是否可以学完所有实践任务。
  • 可以根据week的大小进行分类讨论,如果 m i d ≥ w e e k mid \geq week midweek,那么可以学完所有实践任务,无论是一天完成一节还是两节实践任务;否则最多只可以学习mid * 2个学习任务。
def solve():n, s, b, a = map(int, input().split())week = n // 7 + (0 if n % 7 == 0 else 1) # n天内总共有多少周l = 0r = int(1e9) + 10while l + 1 < r:mid = (l + r) >> 1tot = mid * bif mid >= week // 2 + week % 2: # 可以分批次学完所有实践任务tot += week * aelse:tot += mid * 2 * a # mid天内每天学习 2个实践任务if tot >= s:r = midelse:l = midprint(n - r)

C - Insert and Equalize

原题链接

题目描述
给定一个长度为n且不含重复元素的数组arr,你需要往数组中插入一个数组中不包含的元素,然后再选择一个数x,在每次操作中,你可以为数组中的一个数加上x求使得数组中所有元素相等的最小操作数

思路:排序+gcd

  • 要使得操作数最小,那么x的最优解为排序好的数组的所有相邻元素的差的最大公约数。
  • insert的值为小于arr[n]的最大的且不在数组中且与arr[n]的差为gcd的倍数的值,通过枚举数组可以得到。
public static void solve() throws IOException {int n = readInt();long[] arr = utils.nextLongArray(n);Arrays.sort(arr, 1, n + 1);if (n == 1) {// 数组只有一个元素printWriter.println(1);return;}List<Long> list = new ArrayList<>();for (int i = 2; i <= n; i++) {list.add(arr[i] - arr[i - 1]);// 存下相邻数的差}long gcd = getGcd(0, list);// 获取所有数的 gcdlong insert = Long.MAX_VALUE;// 要插入的元素for (int i = n; i >= 2; i--) {if (arr[i] - arr[i - 1] != gcd) {insert = arr[i] - gcd;break;}}if (insert == Long.MAX_VALUE) {// 无法插入,那么插入一个最小的数 arr[1] - gcdinsert = arr[1] - gcd;}long sum = 0;for (int i = 1; i <= n; i++) {sum += (arr[n] - arr[i]) / gcd;}sum += (arr[n] - insert) / gcd;printWriter.println(sum);
}public static long getGcd(int u, List<Long> list) {if (u == list.size() - 1) {return list.get(u);}long v = getGcd(u + 1, list);return gcd(list.get(u), v);
}public static long gcd(long a, long b) {return b == 0 ? a : gcd(b, a % b);
}

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

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

相关文章

选择排序、插入排序、希尔排序

1.选择排序 算法描述 将数组分为两个子集&#xff0c;排序的和未排序的&#xff0c;每一轮从未排序的子集中选出最小的元素&#xff0c;放入排序子集 重复以上步骤&#xff0c;直到整个数组有序 选择排序呢&#xff0c;就是首先在循环中&#xff0c;找到数组中最小的元素。在…

Docker 安装部署 Sentinel Dashboard

1、下载 jar 包 官方 jar 包下载地址&#xff1a;https://github.com/alibaba/Sentinel/releases 或者点击 链接 直接跳转到下载页 进入链接下载你需要的版本 下载完毕&#xff08;我这里统一放在一个sentinel目录内&#xff09; 2、编写 Dockerfile 文件&#xff08;这里我不…

详解—[C++数据结构]—红黑树

目录 一、红黑树的概念 ​编辑二、红黑树的性质 三、红黑树节点的定义 四、红黑树结构 五、红黑树的插入操作 5.1. 按照二叉搜索的树规则插入新节点 5.2、检测新节点插入后&#xff0c;红黑树的性质是否造到破坏 情况一: cur为红&#xff0c;p为红&#xff0c;g为黑&…

一键式紧急报警柱系统

随着科技的不断发展&#xff0c;一键式紧急报警柱在我们的生活和工作中扮演着越来越重要的角色。在这篇文章中&#xff0c;我们将一起探究与一键式紧急报警柱有关的知识。 一键式紧急报警柱是一种常见的安全防护设备&#xff0c;能够在紧急情况下快速发出警报&#xff0c;保护…

探索数据之美:优雅权重计算方法与Python实践

写在开头 在数据的世界里,我们常常需要通过各种方法为不同的数据点分配合理的权重。这是数据分析中至关重要的一环,它决定了模型的准确性和结果的可信度。本文将引导您探索数据分析中常用的权重计算方法,并通过清晰的Python代码实现,让您轻松驾驭权重的奥秘。 1.常见分类…

XUbuntu22.04之安装OBS30.0强大录屏工具(一百九十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

​LeetCode解法汇总1038. 从二叉搜索树到更大和树

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 给定一个二…

【算法】Boyer-Moore 算法

目录 1.概述1.1.Boyer-Moore 算法介绍1.2.坏字符规则表1.3.好后缀规则表1.4.总结 2.代码实现3.应用 更多数据结构与算法的相关知识可以查看数据结构与算法这一专栏。 有关字符串模式匹配的其它算法&#xff1a; 【算法】Brute-Force 算法 【算法】KMP 算法 【算法】Rabin-Karp …

数据在内存中的存储(含面试题)

数据在内存中的存储 1. 整数在内存中的存储2. 大小端字节序和字节序判断2.1 什么是大小端&#xff1f;2.2 为什么有大小端?2.3 练习2.3.1 练习12.3.2 练习22.3.3 练习3第一题第二题 2.3.4 练习42.3.5 练习5第一题第二题 2.3.6 练习6 1. 整数在内存中的存储 在讲解操作符的时候…

QNX的nicinfo ifmcstat if_up和tcpdump

nicinfo 在QNX操作系统中&#xff0c;nicinfo是一个用于显示网络接口卡&#xff08;NIC&#xff09;信息的命令行工具。它可以提供有关系统中所有可用网络接口卡的详细信息&#xff0c;例如接口名称、MAC地址、IP地址、掩码、广播地址、传输单元大小等等。 通过nicinfo命令可…

android studio 打开flutter项目 出现 dart sdk is not configured

android studio 版本 flutter版本 解决方式 1 点击Open Dart setting 2 打勾Enable Dart support for the project 3 Dart SDK path 选择flutter/bin/cache/dart-sdk 4 打勾Enable Dart support for the following modules

Python标准库:math模块【侯小啾Python基础领航计划 系列(十六)】

Python标准库:math模块【侯小啾python基础领航计划 系列(十六)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ…

Linux的sed命令

环境 Ubuntu 22.04 概述 sed 是“stream editor”的意思&#xff0c;用来处理文本&#xff0c;比如做文本查找、替换。 处理单行文本 用法1 语法&#xff1a; sed s/aaaa/bbbb/ aaaa &#xff1a;用正则表达式来匹配字符串&#xff0c;并用圆括号括起来需要获取的内容&a…

TCPDUMP抓包明确显示IP地址和端口号

经常使用tcpdump进行抓包的同学可以忽略了&#xff0c;这篇偏于使用扫盲&#xff1b;首先&#xff0c;tcpdump抓包目的IP显示为hostname&#xff0c;如果端口是知名端口&#xff0c;显示为协议名而不是端口号。这种默认其实略有问题的&#xff1a; 如果我们使用默认的hostname…

【蓝桥杯】马的遍历

马的遍历 题目描述 有一个 n m n \times m nm 的棋盘&#xff0c;在某个点 ( x , y ) (x, y) (x,y) 上有一个马&#xff0c;要求你计算出马到达棋盘上任意一个点最少要走几步。 输入格式 输入只有一行四个整数&#xff0c;分别为 n , m , x , y n, m, x, y n,m,x,y。 …

LeetCode算法练习top100:(6)图论

package top100.图论;import java.util.LinkedList; import java.util.Queue;public class TOP {//200. 岛屿数量//网格类问题的 DFS 遍历方法int[][] ways new int[][]{{-1, 0}, {1, 0}, {0, 1}, {0, -1}};public int numIslands(char[][] grid) {int m grid.length, n gri…

目标检测——R-CNN系列检测算法总结

R-CNN系列算法详细解读文章&#xff1a; R-CNN算法解读SPPNet算法解读Fast R-CNN算法解读Faster R-CNN算法解读Mask R-CNN算法解读 目录 1、概述1.1 获取目标候选框1.2 候选框提取特征1.3 候选框分类及边框回归 2、R-CNN系列算法概述2.1 R-CNN算法2.2 SPPNet算法2.3 Fast R-CN…

2024最新版软件测试八股文(文档)

前言 &#xff08;第一个就刷掉一大批人&#xff09; 有很多“会自动化”的同学来咨询技术问题&#xff0c;他总会问到我一些元素定位的问题。元素定位其实都不算自动化面试的问题。 一般我都会问&#xff1a;你是定位不到吗&#xff1f;通常结果都是说确实定位不到。 做自…

131.类型题-计算数学序列的和,请编写函数fun,其功能是S=……【满分解题代码+详细分析】(数学序列的和类型题-C/C++JavaPython实现)

文章目录 131.类型题-计算数学序列的和:计算并输出一.题目1.1 解题思路二.解题代码2.1 C/C++解题代码2.2 python解题代码2.3 Java解题代码三.解题代码仔细分析3.1 C/C++解题代码仔细分析3.2 Java解题代码仔细分析3.3 Python解题代码仔细分析四.本类型题解题诀窍五.寄语131.类型…

Spring Boot 之 ModelFactory

1.initModel 功能&#xff1a; public void initModel(NativeWebRequest request, ModelAndViewContainer container, HandlerMethod handlerMethod)throws Exception {Map<String, ?> sessionAttributes this.sessionAttributesHandler.retrieveAttributes(request);c…