【atcoder】abc312~abc321题解

news2024/11/26 5:29:32

UNIQUE VISION Programming Contest 2023 Summer(AtCoder Beginner Contest 312)

A

把信息存进去然后找就行。

B

枚举右上角,然后模拟判断即可。

C

二分这个 X X X ,然后判断即可。

D

典型的括号类的 d p dp dp d p i , j dp_{i, j} dpi,j 表示前i个字符,左-右= j j j 的方案数,答案为 d p n , 0 dp_{n, 0} dpn,0。若si= ( ( ( 或者 ) ) ) 显然对于任意 d p i , j dp_{i, j} dpi,j 是固定的,故直接继承上一层即可。若为 ? ? ?,则分别加上是 ( ( ( 的方案和 ) ) ) 的方案即可。

E

用一个三维数组记录一下每个位置是哪个块存下标。相邻的两个位置显然满足其中一维的差为 1 1 1 且仅有一维。那么枚举 ( i , j , k ) (i, j, k) (i,j,k),对其相邻的块查看是否有块的存在并且不是他自己的块,如果是就把i的答案里记录一下,相邻的块的所属块也记录一下,用 s e t set set 搞就行。

F

贪心。设物品1,2,3的数量分别为 n 1 , n 2 , n 3 n1, n2, n3 n1,n2,n3 。那么枚举使用 0   n 3 0~n3 0 n3 个物品 3 3 3 的情况下的最大快乐值。贪心的选,那么显然就是在选 1 1 1的是后要取大的,23同理也是。用 n u m 1 , n u m 2 num1,num2 num1,num2 记录一下 12 12 12 的使用数量,如果当前的数量超标就抛弃一个小的。接下来不停的选物品 2 2 2,然后如果当前的这个物品 3 3 3 还可以继续开物品 2 2 2 就并且物品2还有没选的就不停的替换物品 1 1 1(如果比物品1大的话),最后把所有的情况取个 m a x max max 即可。

G

可以发现 ( i , j , k ) (i, j, k) (i,j,k) 的结构一定是如下的:
在这里插入图片描述

那么此时可以想到对于每一个 u ( 1 ≤ u ≤ n ) u(1 \leq u \leq n) u(1un) 统计形式如上图的这样的三元对个数,加到 a n s ans ans 里即可。那么此时可以想到一个类似与 d p dp dp 的思路来处理这个东西。 t 1 , t 2 , t 3 t1, t2, t3 t1,t2,t3分别表示在u的子树中的满足要求的 1 , 2 , 3 1,2,3 1,2,3 元对的个数。遍历的 u u u 的子节点 v v v ,如果 u u u 的辈分高于 v v v,那么显然可选的点数就是 v v v 的子树大小,否则为 n − u n - u nu 的子树大小,设其为 k k k t 3 t3 t3显然是在 t 2 t2 t2 的基础上选一个,即 t 2 × k t2 \times k t2×k t 2 t2 t2 是在 t 1 t1 t1 的基础上选一个,即 t 1 × k t1 \times k t1×k t 1 t1 t1 就加上可选的 k k k 个就行了,把统计完的 t 3 t3 t3 加起来就行了。

AtCoder Beginner Contest 313

A

模拟。

B

类似 f l o y d floyd floyd,若 i > j i > j i>j 并且 j > k j > k j>k 得出 i > k i>k i>k,最后对于 i i i 判断即可。

C

求一下平均值,然后对于余数部分就把后面的减掉,最后加上绝对值之和/2就行。

D

没有看到不能重复。。。。询问 [ 1 , k + 1 ] [1,k+1] [1,k+1] 去掉 [ 1 , k ] [1,k] [1,k] 后的 k k k 个数,得到k组关系,继续询问 [ 1 , k ] , [ 3 , k + 2 ] , [ 4 , k + 3 ] . . . . . [1,k],[3,k+2],[4,k+3]..... [1,k],[3,k+2],[4,k+3].....得到 n − k n-k nk 组关系,通过这些关系就可以推值了,(这里的关系指值相不相等)

E

首先比较明显的是如果有两个非1数挨在一起就会-1。对于有解,因为i作用于i-1,所以考虑倒着统计。记当前的答案为ans,那么显然对于i(1<=i<n),那么消掉他首先由s_i+1拆开(1次)然后是彻底消掉(ans * s_i+1次),加到ans里就行了,记得-1,因为最后一步长度为1的时候不需要操作。

KEYENCE Programming Contest 2023 Summer(AtCoder Beginner Contest 315)

A

对于每一个字符判断即可

B

首先找到他在哪个月,然后算天数就行

C

排个序最大的一定取,然后枚举另一个即可

D

有点没看懂题qwq,但感觉就是模拟,略了

E

感觉很显然的图论,对于一个书就指向所有他要看的,对于一条路径显然就是先看最下面的然后依次往上,所以从 1 1 1 开始往下 d f s dfs dfs 就行了,但是要先 d f s dfs dfs 子节点,因为要先处理要看的。

F

赛时正解想到了,但是细节没处理好挂了了。首先观察到性质:因为2c的增长非常快,可以估计大概当c>30的时候2c已经太大了不可能跳c个成为最优解,所以只需要dp那些c<=30的情况即可。设dp(i, c)表示前i个,跳了c个的最短距离(不包含2^c,赛时这个一起算就挂了),那么我们考虑是从哪个点走过来的设他为k,此时他们之间的点显然都跳了但是我们知道这个数<=30,所以k的取值最多30,所以直接考虑转移柿子,显然就是dp_{k, c-(i-k-1)}+dis(k,i),然后取个min就没了。最后答案就是min(dp_{n,c} + 2^c)

AtCoder Beginner Contest 319

A

存个表直接找就行。

B

枚举 j j j 即可

C

d f s dfs dfs 读法,答案是不失望的读法数 /   9 ! / \ 9! / 9!

D

二分答案裸题, c h e c k check check 就对于每个单词看看要不要换行并更新一下即可,最后判断行数 < = m <=m <=m 即可

E

显然 l c m ( p 1 , p 2 , . . . p n − 1 ) lcm(p_1,p_2,...p_{n-1}) lcm(p1,p2,...pn1) 是个循环,那么只需要处理 0   l c m ( p 1 , p 2 , . . . . , p n − 1 ) − 1 0~lcm(p_1,p_2,....,p_{n-1})-1 0 lcm(p1,p2,....,pn1)1 的答案即可,最后对于每个查询,整的部分直接算就行,零的前面已经预处理过了

ARC165

A

显然当 n n n 有大于 1 1 1 个质因子的时候 Y e s Yes Yes,脑抽挂了 4 发,555

B

首先你排完序以后一定不变或更劣,既然字典序最大,那么就让第一个改变的数的位置尽量靠后。然后有初始最优区间 [ n − k + 1 , k ] [n-k+1, k] [nk+1,k],考虑看看能不能更优秀,设 n o w now now 为当前的尝试的区间的开头,那么如果 p n o w − 1 < p n o w p_{now-1} < p_{now} pnow1<pnow 那么 n o w now now 变成 n o w − 1 now-1 now1 一定不劣,不停的移知道再移动会变劣为止,然后直接操作即可。

ABC320

A

暴力算一算即可。

B

直接找吧,取个max。

C

圆环,所以把每个都复制3遍,然后枚举最后数字相同且位置不同的那三个,设他们的下标为 i , j , k i, j, k i,j,k,则最后的时间为 m a x ( i , j , k ) max(i ,j, k) max(i,j,k),对这个东西取个 m i n min min

D

明显的图论, A i = > B i A_i => B_i Ai=>Bi,走过去就两个坐标分别加上边权的 X i , Y i X_i, Y_i Xi,Yi 即可,刷一遍 d i s dis dis 就行。

E

首先:在队里的人里面编号最小的显然一定排在最前面。然后开两个优先队列 q 1 , q 2 q1, q2 q1,q2 q 1 q1 q1 存不在队里的人的回归时间和编号, q 2 q2 q2 存在队里的人的编号。每次显然就是 q 2. t o p ( ) q2.top() q2.top() 来接,然后踢到 q 1 q1 q1 里存。这里 q 1 q1 q1 就按回来的时间从小到大排,这样具有单调性可以优化不少时间,注意在前面要把归队的全部从 q 1 q1 q1 挪到 q 2 q2 q2 里。

F

f i , j , k f_{i, j, k} fi,j,k 表示到了 X i X_i Xi,正的那趟到这里有 j j j 的油, 反的那趟到这里至少有 k k k 的油的最小花费,那么考虑转移,主导转移好些很多。设 d i s dis dis 为 从 i i i i + 1 i+1 i+1 的耗油数,那么对于 X i + 1 X_{i+1} Xi+1 可以:

  1. 不加 f i , j , k = > f i + 1 , j − d i s , k + d i s f_{i,j,k} => f_{i+1,j-dis,k+dis} fi,j,k=>fi+1,jdis,k+dis
  2. 正着到 X i + 1 X_{i+1} Xi+1 的时候加 f i , j , k = > f i + 1 , m i n ( j − d i s + F i + 1 ) , k + d i s f_{i,j,k}=>f_{i+1,min(j-dis+F_{i+1}),k+dis} fi,j,k=>fi+1,min(jdis+Fi+1),k+dis
  3. 反着到 X i + 1 X_{i+1} Xi+1 的时候加 f i , j , k = > f i + 1 , j − d i s , k + d i s − F i + 1 f_{i,j,k} => f_{i+1,j-dis,k+dis-F_{i+1}} fi,j,k=>fi+1,jdis,k+disFi+1

最后一段路单独领出来用 d p dp dp 处理一下就好了捏:

对于 d p n − 1 , j , k dp_{n-1, j, k} dpn1,j,k ,现在要从 n − 1 n-1 n1 走到 n n n,那么就是看看能不能 n − 1 = > n = > n n-1 => n => n n1=>n=>n 以后油还不小于 k k k,设 d i s dis dis n n n n − 1 n-1 n1 的距离,然后这个就判一下 k ≤ j − 2 ∗ d i s k \leq j-2*dis kj2dis,如果满足就可以,取个 m i n min min

ABC321

A

直接模拟判即可。

B

就从0~100分别 c h e c k check check 一下就好了。

C

直接暴力 d f s dfs dfs 出来所有满足要求的数,然后打表输出即可。

D

二分板子。把 b b b 排个序,对于每一个 i i i 来算他和所有 b j b_j bj 的答案,设最后一个满足 a i + b j ≤ p a_i + b_j \leq p ai+bjp j j j l l l,那么显然 a i a_i ai 就和 [ 1 , l ] [1,l] [1,l] 的和都是不被 P P P 影响的,后面的都是 P P P,前面的用前缀和算一下,后面直接算就行。

E

分为在 x x x 子树内的答案和在子树外的答案。设 f ( n , x , k ) f(n, x, k) f(n,x,k) 表示 n n n 个点 x x x 到其子树内距离为 k k k 的点有多少个。子树内的就是 f ( n , x , k ) f(n, x, k) f(n,x,k),然后枚举一下 x − > u − > y x -> u -> y x>u>y 这个 u u u,显然最多 l o g log log x − > u x->u x>u 是固定的, u − > y u->y u>y y y y 的个数就是 f ( n , u , k − d i s ( u , x ) ) f(n, u, k-dis(u, x)) f(n,u,kdis(u,x)).

F

回退背包板子,没啥好讲的。就 + 的时候把所有的方案数加上 f j − x f_{j-x} fjx- 的时候就做逆操作就行了捏。

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

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

相关文章

Python大数据之Python进阶(二)多任务编程-进程

文章目录 多任务编程-进程本章节学习目标本章节常用单词 多任务的介绍1. 提问2. 多任务的概念多任务3. 多任务的执行方式4. 小结 进程1. 进程的介绍2. 进程的概念3. 进程的作用4. 小结 多任务编程-进程 本章节学习目标 能够知道多任务的执行方式能够知道进程的作用能够使用多…

代理IP对企业网络安全的重要性

随着科技的快速发展&#xff0c;网络已经成为企业运营的重要工具&#xff0c;然而与发展相伴的网络安全问题也日趋复杂&#xff0c;为了降低数据和隐私泄露的风险&#xff0c;企业必须给予足够的重视&#xff0c;采取全面的网络安全应对措施来降低风险&#xff0c;维护企业形象…

VS报错无法解析的外部符号.....

VS报错无法解析的外部符号... 我们在使用VS编译器编写C代码运行时提示&#xff1a;严重性 代码 说明 项目 文件 行 禁止显示状态错误 LNK2019 无法解析的外部符号 _main&#xff0c;函数 “int __cdecl invoke_main(void)” (?invoke_mainYAHXZ) 中引用了该符号 StudyC…

webstorm卸载安装新版本后启动报错

问题描述 ​ 卸载了之前的2020版本然后安装2023版&#xff0c;安装之后打开出现如上错误 ​ 解决办法 --- 安装以下软件并在上面下载webstorm 安装&#xff1a;JetBrains Toolbox App 推测&#xff1a;应该是旧版本未卸载干净

电脑突然提示mfc140u.dll丢失,缺失mfc140u.dll无法运行程序的解决方法

在当今信息化社会&#xff0c;电脑已经成为我们生活和工作中不可或缺的一部分。然而&#xff0c;随着技术的不断发展&#xff0c;电脑也会出现各种问题。其中&#xff0c;最常见的问题之一就是“mfc140u.dll丢失”。那么&#xff0c;当我们遇到这个问题时&#xff0c;应该如何解…

GAN学习笔记

1.原始的GAN 1.1原始的损失函数 1.1.1写法1参考1&#xff0c;参考2 1.1.2 写法2 where, G Generator D Discriminator Pdata(x) distribution of real data P(z) distribution of generator x sample from Pdata(x) z sample from P(z) D(x) Discriminator network G…

Redis key基本使用

查看key的数据类型 string 、hash等 type key 查看key是否存在 exist key1 查看key的有效期 -1&#xff1a;永不过期 -2&#xff1a;已过期 设置key过期时间 expire key seconds expireat key 日期 key移动到其它库 move key index redis 默认是16个库 0,1,2,…15 切换数据库【…

箱讯科技成功闯入第八届“创客中国”全国总决赛—在国际物流领域一枝独秀

添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 2023年9月26日&#xff0c;第八届“创客中国”数字化转型中小企业创新创业大赛决赛在贵州圆满收官。 经过初赛、复赛、决赛的激烈角逐&#xff0c;箱讯科技与众多强劲对手同台竞技&#xff0c;最终凭借出…

ROS系统通过类定义实现数据处理并重新发布在另一话题

在实际应用中&#xff0c;经常需要在同一个节点内接受数据&#xff0c;在回调函数中将数据进行处理&#xff0c;再将新数据重新发布在另一个新话题上。 实现步骤&#xff1a; 1. 定义一个数据处理类SubscribeAndPublish&#xff0c;设置2个pub成员对象和1个sub成员对象为publ…

pip安装报错 RuntimeError:Python version 2.7 or 3.4+ is required——解决办法

使用pip install安装第三方库时报错&#xff0c;错误如下&#xff1a;本机安装的是python3.11&#xff0c;已经大于3.4了&#xff0c;但还是会报错。 1、原因 由于存在字符串比较的一个bug&#xff0c;在检查python版本时&#xff0c;会逐个字符进行比较&#xff08;4>1&a…

新手学PCB画板选什么软件

Protel、AD、PADS与Allegro的比较与选择 1.Protel 早期使用较多&#xff0c;现在已经不在流行&#xff0c;少部分工程师能在使用。 优点&#xff1a;1.对新人友好&#xff0c;容易上手&#xff0c;所以学校教学首选这个。2.对电脑要求配置低&#xff0c;一般的电路设计都能实…

Qt扩展-KDDockWidgets 的使用

KDDockWidgets 的使用 一、概述二、原理说明三、代码实例1. 项目简述2. 布局源码 一、概述 KDDockWidgets 的使用相对比较简单&#xff0c;建议直接参考 其提供的例子。 二、原理说明 在这种多窗口布局显示的使用最常用的就是这两个类&#xff0c; 也就是 MainWindow 和 Doc…

No127.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

SpringBoot RestControllerAdvice异常处理适配原理

在项目中我们经常通过RestControllerAdviceExceptionHandler一起来实现全局的异常处理。 以下是示例代码&#xff1a; package com.xulu.monitor.test;import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.Rest…

【面试题】2023前端面试真题之JS篇

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 表妹一键制作自己的五星红旗国庆头像&#xff0c;超好看 世界上只有一种真正的英雄主义&#xff0c;那就是看清生活的真相之后&#xff0c;依然热爱生活。…

Shiro反序列化原理及完整复现流程(Shiro-550/Shiro-721)

一、Shiro简介 Apache Shiro是一个强大且易用的**Java安全框架,**能够用于身份验证、授权、加密和会话管理。Shiro拥有易于理解的API,您可以快速、轻松地获得任何应用程序——从最小的移动应用程序到最大的网络和企业应用程序。 二、环境准备 靶机IP地址&#xff1a;192.168…

【新版】系统架构设计师 - 未来信息综合技术

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 架构 - 未来信息综合技术考点摘要信息物理系统CPS的体系架构CPS 的技术体系CPS应用场景 人工智能分类关键技术机器学习 机器人发展分类机器人4.0 边缘计算概念与特点边云协同安全应用场景 数字孪生关键技…

Facebook耐用号养成攻略!如何实现自动化高效养号

在跨境电商领域&#xff0c;Facebook 已经成为一个不可或缺的推广和营销平台。然而&#xff0c;想要在 Facebook 上取得成功&#xff0c;有一批耐用的 Facebook 账号是必不可少的。养出一批 Facebook 耐用号可以不仅可以大幅度提高推广效率&#xff0c;更能有效降低营销成本&am…

ISP图像信号处理——平场校正介绍以及C++实现

参考文章1&#xff1a;http://t.csdn.cn/h8TBy 参考文章2&#xff1a;http://t.csdn.cn/6nmsT 参考网址3&#xff1a;opencv平场定标 - CSDN文库 平场校正一般先用FPN(Fixed Pattern Noise)固定图像噪声校正,即暗场校正&#xff1b;再用PRNU(Photo Response Non Uniformity)…

c++颜色空间转换

c颜色空间转换 cvtColor函数标识符颜色空间转换的类型 cvtColor函数使用不同的标识符来表示颜色空间转换的类型。这些标识符通常位于OpenCV的cv命名空间中&#xff0c;并以cv::COLOR_作为前缀。以下是一些常用的cvtColor函数标识符&#xff1a; BGR到灰度&#xff1a; cv::CO…