三月Atcoder做题记录

news/2025/4/2 5:53:09/文章来源:https://www.cnblogs.com/reinforest/p/18801871

AT_arc_164_a

题意描述

给定 \(n\)\(m\),判断 \(n\) 是否能够表示成 \(m\)\(3\) 的整数次幂之和。

简要题解

\(n\) 转化成 \(3\) 进制,计算每个数位和 \(sum\),因为每个数位的贡献是 \(3\) 的整数倍,每次增加一个指数会带来 \(2\) 的贡献,则 \(sum\le m \le n\)\(2|(m-sum)\) 就符合题目条件。

AT_arc_164_b

题意描述

给你 \(n\) 个点 \(m\) 条边的无向图,每个点的颜色或黑或白,每次可以从一个颜色的节点走向另一个颜色的节点,问是否可以从任意一个点开始走至少1次后回到开始节点。

简要题解

如果存在符合条件的路径,一定是一个有一条边两端的颜色相同,其余的颜色黑白相间的环。用并查集维护所有黑白相间的边,然后判断颜色相同的边的两端是否有相同的祖先即可。

AT_arc_164_c

题意描述

Alice和Bob用 \(n\) 个两面都有数字的卡片做游戏。每一轮Alice可以将一个卡片翻转,Bob可以拿走一个卡片并得到这个卡片朝上的数字分数,请问Bob最多能得多少分?

简要题解

有一个贪心的结论:Bob可以得到 \(n\)\(n-1\) 的最大分数,判断 \(n\)\(n-1\) 的关键是开始有偶数个大数在正面,那么就是 \(n\),反之就是 \(n-1\)

AT_arc_164_d

题意描述

\(n\)\(+1\) 电荷和 \(n\)\(-1\) 电荷,每个电荷都会向在左边和右边中与自己不相同的电荷个数最多的一边移动,如果两个不同的电荷碰到了一起就抵消了。现在给你 \(2n\) 个字符,其中有些电荷不知道是 \(+\) 还是 \(-\),请对所有可能的答案求出每个电荷移动距离的和的和。

简要题解

考虑令 \(dp[i][j]\) 表示前 \(i\) 个数,\(+1\)\(-1\) 的差值为 \(j\) 的方案数,\(sum[i][j]\) 为答案,方案数很好求,对 \(+,-,?\) 分类讨论即可。(当然 \(sum[i][j]\) 同理)考虑 \(dp[i][j]\)\(sum[i][j]\) 的贡献,有 $sum[i][j] \leftarrow dp[i][j]*|j| $。因为其中有 \(j\) 个没有消掉的电荷,每个电荷都可以向右移动 \(1\) 格。

AT_arc_164_e

题意描述

\(Q\) 个区间 \([L,R]\)。你需要构造一个二叉树,满足每一个非叶子节点一定有两个子节点,如果一个非叶子节点对应 \([i,j]\),那么它的两个子节点可以为把这个区间任取拆成2个区间,其余与线段树相同。你需要在保证在 最大深度最小的条件下每个点访问次数最小。

简要题解

考虑先把这些区间给分成若干个互不相交的区间,那么第一问的答案就是 \(\lceil \log_2t \rceil\),其中 \(t\) 为区间个数。
考虑对于一个区间(这些区间一定是叶子结点),我们要么把它放在下面,要么新建一层和相邻的区间合并。记 \(dp[i][j]\) 表示前 \(i\) 个区间,上一层有 \(j\) 个区间的贡献最小值。转移就是 \(dp[i][j] \leftarrow dp[i-2][j-1]+2*(cnt_l[cur[i]]+cnt_r[cur[i]-1])\)

AT_arc_164_f

给出了一个 N 个点的树,以 1 为根。

  • Alice 是先手持白棋,Bob 是后手持黑棋。
  • 若 u 无棋子且其儿子都有棋子,则可以放。
  • 在 u 放棋子时,子树内棋子颜色反转(u 不变)。

Alice 希望白棋最多,Bob 希望黑棋最多,双方都采取最优策略,问白棋数量。

简要题解

一棵树上每个棋子的最终是黑或者白只和这个节点的深度有关。我们把到根的距离为奇数的点染成蓝色,为偶数的染成红色。我们对每个以红色节点为根的子树进行判断:

  • 如果这个点是叶子节点,把它看成一组;
  • 如果这个点的父亲有至少 \(2\) 个孩子,那么把这个点以及它的子树看成一组;
  • 找到“一组”后把这一组在树中删去。

最后你会得到很多组,以蓝色节点数量排序,因为对于每一组,先手都会把蓝色节点取完,所以轮流计算每一组的蓝色节点对答案的贡献即可。

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

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

相关文章

libXss.so.1()(64bit) is needed by mega-11.0.13-1.x86_64

001、问题 libXss.so.1()(64bit) is needed by mega-11.0.13-1.x86_64 002、解决方法:yum install libXScrnSaver 003、验证: 刚才的报错消失。

SuperPoint

提出了一种全卷积神经网络架构,用于兴趣点检测和描述,该架构使用一种名为单应性自适应(Homographic Adaptation)的自监督域自适应框架进行训练。我们的实验表明:(1)可以将知识从合成数据集迁移到真实世界的图像上;(2)稀疏兴趣点检测和描述可以作为一个高效的卷积神经网络来实…

Linux 系统中mega软件的安装

001、官方网站:https://www.megasoftware.net/002、下载Linux安装包 (centos系统) 003、

把目光转向新质生产力:高端装备的数字样机技术

在全球化与数字化的大背景下,科技创新已成为重塑生产力结构的核心要素。2023年12月召开的中央经济工作会议上指出:“要以科技创新推动产业创新,特别是以颠覆性技术和前沿技术催生新产业、新模式、新动能,发展新质生产力。” 新质生产力,指创新起主导作用,摆脱传统经济增长…

PLM项目管理软件如何助力企业数字化转型

企业数字化转型已成为当今企业发展的关键趋势,旨在通过整合数字技术与业务流程,提升效率、创新能力与竞争力。在这一进程中,PLM(产品生命周期管理)项目管理软件发挥着不可忽视的重要作用。它犹如企业数字化转型道路上的强大引擎,助力企业实现产品全生命周期的高效管理与创…

缓存 “三剑客”

缓存 “三剑客” 问题如何保证 Redis 缓存和数据库的一致性?1. 缓存穿透 缓存穿透是指请求一个不存在的数据,缓存层和数据库层都没有这个数据,这种请求会穿透缓存直接到数据库进行查询 解决方案: 1.1 缓存空值或特殊值 查一个不存在的数据时,给一个对应的 key 数据,存入缓…

Pylnstaller打包

Pylnstaller可以将py文件打包成单个exe文件,下面具体步骤 这个是我的例子:一.安装pip install pyinstaller 已有可以跳过 二.创建spec文件 打开该文件夹的cmd,然后输入: pyi-makespec --onefile text.py 这时你的目录会生成一个这个文件这是里面内容: # -*- mode: python ;…

leetcode每日一题:数组美丽值求和

引言 ​ 今天的每日一题原题是2278. 字母在字符串中的百分比,直接模拟,逐个匹配,统计letter在原始字符串s中出现的次数,然后再计算所占百分比即可。更换成前几天遇到的更有意思的一题来写这个每日一题。 题目 2012. 数组美丽值求和 给你一个下标从 0 开始的整数数组 nums …

升降机电梯人数超员检测报警系统

升降机电梯人数超员检测报警系统采用区域人数分析预警摄像机设备嵌入AI人数密度分析算法,可对区域内人员数量进行精确分析检测预警。摄像机采用AI算法,通过大量真实的场景样本训练后,能够在各种应用场景下及时准确地对场景中人员数量的分析统计预警。声光报警 系统支持多种声…

9个主流GAN损失函数的数学原理和Pytorch代码实现:从经典模型到现代变体

生成对抗网络(GANs)的训练效果很大程度上取决于其损失函数的选择。本研究首先介绍经典GAN损失函数的理论基础,随后使用PyTorch实现包括原始GAN、最小二乘GAN(LS-GAN)、Wasserstein GAN(WGAN)及带梯度惩罚的WGAN(WGAN-GP)在内的多种损失函数。生成对抗网络(GANs)的工作原理堪比…

工作人员人数异常分析预警系统

工作人员人数异常分析预警系统嵌入AI人员离岗分析算法,可对工作区域内人员的数量进行精确分析检测预警。当区域员工少于规范的人数时候,AI智能摄像机检测分析识别预警,报警信息推送到监控中心,管理者可以及时发现。摄像机采用AI算法,通过大量真实的场景样本训练后,能够在…