牛客周赛 Round 50 解题报告 | 珂学家


前言

alt


题解

数学场,对数学头痛, T_T.


A. 小红的最小最大

题型: 签到

a, b, x = list(map(int, input().split()))if min(a, b) + x > max(a, b):print ("YES")
else:print ("NO")

B. 小红的四则运算(easy)

思路: 贪心

其实就3种情况

  • 三数之和
  • 两数之和 * 最大数
  • 三数相乘
arr = list(map(int, input().split()))arr.sort()
r1 = arr[0] + arr[1] + arr[2]
r2 = (arr[0] + arr[1]) * arr[2]
r3 = arr[0] * arr[1] * arr[2]print (max(r1, r2, r3))

C. 小红的四则运算(hard)

因为只有3个数,可以枚举操作顺序

  • 第一个和第二个数先操作,然后和第三个操作
  • 第二个和第三个数先操作,然后和第一个操作
a, b, c = list(map(int, input().split()))v1 = max(a+b, a * b)
r1 = max(v1 + c, v1 * c)v2 = max(b + c, b * c)
r2 = max(a + v2, a * v2)print (max(r1, r2))

D. 小红的因式分解

思路: 解方程

其实就是一元二次解方程

alt

先要判定是否存在解

需要保证

b 2 − 4 a c ≥ 0 b^2 - 4ac \ge 0 b24ac0

难点在于转化为整数形态

可以从整除关系出发,即每个解 x 1 , x 2 {x_1,x_2} x1,x2的最简分母出发 d 1 , d 2 d_1, d_2 d1,d2,通过gcd演化得到

需要保证 d 1 ∗ d 2 ∣ a d1*d2|a d1d2∣a, 即d1*d2被a整除,就有整数解

t = int(input())from math import gcd, sqrtdef solve():a, b, c = list(map(int, input().split()))# c = b1 * b2# b = a1 * b2 + a2 * b1# a = a1 * a2# -b +- sqrt(b^2 - 4ac)  / 2aif a == 0:return "%d %d %d %d" % (b, c, 0, 1)if b * b - 4 * a * c < 0:return "NO"z = b * b - 4 * a * czr = int(sqrt(z))if zr * zr != z:return "NO"g1 = gcd(abs(-b + zr), abs(2 * a))g2 = gcd(abs(-b - zr), abs(2 * a))l1 = abs(2 * a) // g1l2 = abs(2 * a) // g2if abs(a) % (l1 * l2) != 0:return ("NO")x1 = (-b + zr) * l1 // (2 * a)x2 = (-b - zr) * l2 // (2 * a)l3 = a // (l1 * l2)return "%d %d %d %d" % (l1 * l3, -x1 * l3, l2, -x2)for _ in range(t):print (solve())

E. 小红的树上移动

思路: 期望DP

期望题,核心就一句话

概率正推,期望倒推 概率正推,期望倒推 概率正推,期望倒推

期望公式:

e [ u ] = 1 / ∣ S ( h + 1 ) ∣ ∗ ( ∑ v ∈ S h + 1 e [ v ] ) + 1 e[u] = 1/|S(h+1)| * (\sum_{v\in S_{h+1}} e[v]) + 1 e[u]=1/∣S(h+1)(vSh+1e[v])+1

u 为 h 层节点 u为h层节点 uh层节点

v 为 h + 1 层节点 v为h+1层节点 vh+1层节点

∣ S ( h + 1 ) ∣ 为 h + 1 层的节点个数 |S(h+1)|为h+1层的节点个数 S(h+1)h+1层的节点个数

其本质是自底向上的DP

但是这个很特殊,它是分层的

所以这边采用分层BFS,然后逆序来实现

n = int(input())
g = [[] for _ in range(n)]for _ in range(n - 1):u, v = list(map(int, input().split()))u, v = u - 1, v - 1g[u].append(v)g[v].append(u)from collections import deque
from math import infe = [0] * n
h = [inf] * n
cs = [0] * n  # 子节点个数layers = []deq = deque()
h[0] = 0
deq.append(0)# 分层bfs
while len(deq) > 0:tmp = []sz = len(deq)for i in range(sz):u = deq.popleft()for v in g[u]:if h[v] > h[u] + 1:h[v] = h[u] + 1deq.append(v)cs[u] += 1tmp.append(u)layers.append(tmp)# 逆序求得期望
mod = 998244353
preE, preN = 0, 0
depth = len(layers)
for i in range(depth - 1, -1, -1):l = layers[i]for v in l:if cs[v] == 0:# 叶子节点为终结点,期望为0e[v] = 0else:# 非叶子节点,其期望由下一层的节点决定 e[v] = (preE + preN) * pow(preN, mod - 2, mod) % modpreE = sum([e[v] for v in l]) % modpreN = len(l)print (e[0])

F. 小红的网格

后期补上

直觉感觉,需要枚举平方数,以及可行解边长的GCD有一定关系

t = int(input())from math import gcd
def solve(x):i = 0g = 0d = 2while i * i <= x:y = x - i * ir = int(y ** 0.5)if r * r == y:g = gcd(g, i)g = gcd(g, r)if (i // g + r // g) % 2 == 1:d = 1i += 1if g == 0:return "inf"else:return d * g * gfor _ in range(t):x = int(input())print (solve(x))

写在最后

alt

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

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

相关文章

嵌入式通信协议全解析:SPI、I²C、UART详解(附带面试题)

目录 一、什么是通信 二、 通信的分类 同步通信&#xff08;Synchronous Communication&#xff09; 异步通信&#xff08;Asynchronous Communication&#xff09; 不同协议标准区分图&#xff1a; UART UART的特点&#xff1a; UART的通信过程&#xff1a; UART的配置…

文件防止拷贝如何实现?这些攻略给你了

在信息爆炸的时代&#xff0c;数据安全成为企业和个人不可忽视的重要环节。文件的非法拷贝不仅可能侵犯知识产权&#xff0c;还可能导致敏感信息的泄露&#xff0c;进而引发严重的后果。 因此&#xff0c;了解并掌握文件防止拷贝的方法和技术至关重要。本文将详细介绍几种常见…

C# .Net Core Zip压缩包中文名乱码的解决方法

项目中使用ICSharpCode.SharpZipLib.Zip库进行解压&#xff0c;之前自动更新程序是.NET 4.5的&#xff0c;升级到.NET 8后&#xff0c;发现解压升级包里面的中文文件名是乱码了&#xff0c;经过一番摸索&#xff0c;增加一句代码可以解决乱码问题&#xff1a; Encoding.Regist…

探索Conda世界:使用conda list命令的全面指南

探索Conda世界&#xff1a;使用conda list命令的全面指南 引言 Conda是一个流行的包管理器和环境管理器&#xff0c;广泛用于Python和其他科学计算语言的依赖管理。conda list命令是Conda工具集中的一个关键命令&#xff0c;它允许用户列出当前环境中安装的所有包及其版本。本…

【多线程】wait()和notify()

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 文章目录 1. 为什么需要wait()方法和notify()方法&#xff1f;2. wait()方法2.1 wait()方法的作用2.2 wait()做的事情2…

运维开发小白学习之路

作为一个开发转开发运维过程的小白学习之路&#xff0c;持续更新ing… 1.OpenShift(OKD) 1.1 k8s(kubernetes)学习 2.Docker学习 docker常用命令 3.监控系统 运维监控系统 4.日志分析系统 5.DevOps入门到实践 Linux安装harborcentos7安装gitlab-ce社区版 6.代码学习 …

OpenBayes 教程上新 | 清华大学强推!YOLOv10 实现更高效的目标检测

过去几年中&#xff0c;由于 YOLO 在计算成本和检测性能之间的有效平衡&#xff0c;它已经成为实时目标检测领域的主要范式。然而&#xff0c;YOLO 依赖于非极大值抑制 (NMS) 进行后处理&#xff0c;这阻碍了 YOLO 的端到端部署&#xff0c;并对推理延迟产生了不利影响。 YOLO…

深入浅出目标检测算法:从基础到应用

引言 目标检测是计算机视觉中的一个重要任务&#xff0c;旨在识别并定位图像或视频中的目标对象。随着深度学习技术的发展&#xff0c;目标检测算法取得了显著进展&#xff0c;广泛应用于自动驾驶、安防监控、医疗影像等领域。本文将从基础概念出发&#xff0c;介绍几种主流的…

SpringBootV12和mybatis全部知识点

框架: 快速开发项目的一个架子 ssh ssm spring --> applicationContext.xml配置文件(spring不是业务层,是管理其他框架的) springmvc --> springmvc.xml配置文件 (对应之前servlet) mybatis —> mybatis-config.xml配置文件(对应之前jdbc) —> springboot优化…

【AI技术的未来之路】从模型到应用,跨越超级应用陷阱,迈向个性化智能体

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《热点时事》 期待您的关注 ​ 目录 引言 一、AI技术应用场景探索&#xff1a; 二、避免超级应用陷阱的策略&#xff1a; 三、个…

【STM32】MDK的编译过程及文件类型全解

1.编译过程简介 编译&#xff1a;MDK软件使用的编译器是armcc和armasm&#xff0c; 它们根据每个c/c和汇编源文件编译成对应的以“.o”为后缀名的对象文件(Object Code&#xff0c;也称目标文件)&#xff0c; 其内容主要是从源文件编译得到的机器码&#xff0c;包含了代码、数据…

掌握深海引擎,提升页面美感,让您的网站在搜索引擎中脱颖而出

众位同仁&#xff0c;我们既熟悉也是朋友&#xff0c;我是一位执着于独立站SEO研究和实践的人。今日我将带领诸位更深层次地了解深海引擎&#xff0c;并分享如何使您的网站在搜索引擎的汪洋大海中独占鳌头的技巧。无需担忧&#xff0c;此次课程并非高不可攀&#xff0c;而是满满…

无线网卡怎么连接台式电脑?让上网更便捷!

随着无线网络的普及&#xff0c;越来越多的台式电脑用户希望通过无线网卡连接到互联网。无线网卡为台式电脑提供了无线连接的便利性&#xff0c;避免了有线网络的束缚。本文将详细介绍无线网卡怎么连接台式电脑的四种方法&#xff0c;包括使用USB无线网卡、内置无线网卡以及使用…

火柴棒图python绘画

使用Python绘制二项分布的概率质量函数&#xff08;PMF&#xff09; 在这篇博客中&#xff0c;我们将探讨如何使用Python中的scipy库和matplotlib库来绘制二项分布的概率质量函数&#xff08;PMF&#xff09;。二项分布是统计学中常见的离散概率分布&#xff0c;描述了在固定次…

frp内网穿透xtcp安全点对点p2p部署记录打洞失败解决方法

环境 一、有公网IP、linux主机&#xff08;需要穿透里面的服务&#xff09;、安卓手机、frps、frpc、安卓版frpc 二、两端frpc必须要有一端nat网络类型不是非对称nat 开始 有公网的主机上配置frps.toml bindPort 7000linux主机端frpc.toml配置 serverAddr "x.x.x.x…

Flask 邮件发送实例(代码直接可用)

关于Flask 邮件发送功能的代码实现&#xff0c;很多文章讲得并不清楚&#xff0c;往往学习视频才能讲清楚&#xff0c;我在这里出一个简单实例&#xff0c;直接告诉你各个配置具体对应的是什么意思以及如何获取。 1、实例 from flask import Flask from flask_mail import Ma…

快速掌握 ==== js 正则表达式

git 地址 https://gitee.com/childe-jia/reg-test.git 背景 在日常开发中&#xff0c;我们经常会遇到使用正则表达式的场景&#xff0c;比如一些常见的表单校验&#xff0c;会让你匹配用户输入的手机号或者身份信息是否规范&#xff0c;这就可以用正则表达式去匹配。相信大多数…

ISO 20000认证:驱动企业IT服务管理变革的利器

在信息技术驱动商业发展的今天&#xff0c;企业对高效、可靠和安全的IT服务需求日益增长。ISO 20000作为国际公认的IT服务管理标准&#xff0c;能够帮助企业在竞争激烈的市场环境中脱颖而出&#xff0c;实现IT服务管理的全面提升。本文将深入探讨ISO 20000认证如何帮助企业优化…

android 使用系统工具bootchart统计开机时长

软件平台&#xff1a;Android11 硬件平台&#xff1a;QCS6125 需求&#xff1a;统计系统优化前后的启动时长差异。 1、在Ubuntu安装bootchart工具&#xff1a; 1.sudo apt-get update2.sudo apt-get upgrade3. //ubuntu18.04上面找不到这个 //sudo apt-get install bootchar…

C++第三弹 -- 类与对象(上)

目录 前言一. 面向过程和面向对象的初步认识二. 类的引入三. 类的定义1.定义2. 命名规则建议 四. 类的访问限定符以及封装1. 访问限定符2.面试题3. 封装 五. 类的作用域六. 类的实例化七. 类的对象大小的计算八. 类成员函数this指针1. this指针的引出2. this指针的特性3. C语言…