abc369 题解

切了 A~F,还挺开心(但是如果上一次把 G 切了的话,我就上青了 QAQ
比赛链接:https://atcoder.jp/contests/abc369

A - 369

题意:

给定正整数 a,b1a,b100),请问有多少个整数 x 满足 a,b,x 排序后构成等差数列。

思路:

观察到 a,b 范围很小,直接枚举 x 即可。

代码:

https://atcoder.jp/contests/abc369/submissions/57274734

B - Piano 3

题意:

给定 2 个序列 a,b,序列长度分别为 n,m,求 i=2n|aiai1|+i=2m|bibi1|

思路:

按题意模拟即可。

C - Count Arithmetic Subarrays

题意:

给定一个长度为 n1n2×105)的序列 a,求 a 有多少个子串 b 满足 b 升序排列且为等差数列。

思路:

容易发现一个性质:若 a[lr] 为等差数列,且 a[lr+1] 不为等差数列,那么 a[l+1r+1] 不为等差数列,a[lr+2] 也不为等差数列。

那么我们可以双指针,让 rl 开始扩展,扩展到 a[lr] 为等差数列时,且 a[lr+1] 不为等差数列时,计算方案数为 (rl+1)(rl+2)2,但是这样计算会把长度为 1 的子串算重,那么可以将长度为 1 的子串不在双指针中计算,那么每次计算的方案数为 (rl)(rl+1)2,最后再将答案加 n 即可。

代码:

https://atcoder.jp/contests/abc369/submissions/57289604

D - Bonus EXP

题意:

给定一个长度为 n1n2×105)的序列 a,定义 f(b)=i=1|b|bi×[(i1)mod2+1]。求 a 的所有子序列 bf(b) 的最大值。

思路:

选取子序列,可以想到动态规划。设 fi,0/1 表示选到了第 i 个数,当前选到新序列中编号模 20/1 所得到的分数的最大值。fi,0 可以由 fj,1(0j<i) 转移过来,但是可以发现 fi3,1 一定比 fi1,1 更优,因为中间可以在插一个偶数编号。同理,fi2,1 也一定比 fi4,1 更优,那么 fi,0 只要从 fi1,1fi2,1 转移过来即可。

代码:

https://atcoder.jp/contests/abc369/submissions/57296836

E - Sightseeing Tour

题意:

给定一张 n 个点 m2n400,n1m2×105)条边的无向带权图,图中可能会有重边,但不会有自环。给定 T 次询问,每次询问给出 k1T3000,1k5)条图上的边,求从 1n 经过这 k 条边的最短路。

思路:

经过这 k 条边相当于每次从到达的点开始往还没经过的边的任意一个端点走,然后再走该边,这样题目就化成选边的顺序了,又观察到 1k5,考虑状压 dp。

fi,S 为到达第 i 个点,已经过给定边集的子集 S 的最短路径(这里的 i 数量很有限,只可能是给定边的端点)。

枚举集合 S,再枚举集合 S 中的元素 i,设集合 T 为集合 S 中除去元素 i 的集合,再枚举集合 T 中的元素 j(若集合 S 中只有 1 个及以下的元素,那么会被预处理算出),考虑用 fuj/vj,T 转移得到 fui/vi,S,很显然有 fui,Sfuj,T+duj,vi+widu,v 表示图中 uv 的最短路径。vi,vj 同理转移)。

考虑初始化,fui/vi,=d1,ui/vi,fui/vi,{i}=d1,ui/vi+wi

求解 d 数组可以用 floyd 求解,总时间复杂度应该是:O(n3+Tk22k)

代码:

https://atcoder.jp/contests/abc369/submissions/57335439

F - Gather Coins

题意:

现在有一个 h×w 的网格,网格上有 n 枚金币,第 i 枚金币在网格 (xi,yj) 处,现在你在网格 (1,1) 处,你想走到网格 (h,w) 处且获得最多的金币,你每次只能向下或向右走。请问你做多能获得多少金币,并输出其中的一种路径。

思路:

容易发现路径的横纵坐标是单调不减的,所以所获得到的金币的横纵坐标也都得是单调不减的,且若所获得的金币的横纵坐标都是单调不减的,那么你一定都能获取到。那么其实就是要求金币按照横坐标从小到大排序后,选取子序列最长且满足纵坐标单调不减,那么题目就转化成了二维偏序问题,可以用最长不下降子序列解决。

代码:

https://atcoder.jp/contests/abc369/submissions/57324756

posted @   liruixiong0101  阅读(116)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示