呪泉郷咒泉乡
Processing math: 100%

ABC 362

Jair·2024-07-14 10:11·7 次阅读

ABC 362

比赛链接

Solution


Buy a Pen

A
题目链接
提交记录

模拟。

小技巧:用 pair 来处理类似问题很方便


Right Triangle

B
题目链接
提交记录

题意: 给定三个不共线的点, 判断这三个点生成的三角形是否是直角三角形.

考虑向量法。把三个点两两相减找到构成三角形的三条边所对应的向量,然后用向量点乘的方法判断是否存在两条邻边垂直。


Sum = 0

C
题目链接
提交记录

题意: 给定 n 个数对 (Li,Ri), 问是否能构造 {An}, 使得 i[1,n], LiAiRi, 有 A=0. 并给出构造方式.

性质:

  1. 首先发现令 Ai=Li 时, 所得的和 A 必然最小.

  2. 同理令 Ai=Ri 时, A 必然最大.

  3. 以性质 1 的条件为初始状态, 若干次进行操作“对于某个 i 满足 Ai<Ri, Ai 自增 1”, 可以使得 A 遍历 [Li,Ri] 中的所有数.

因此,以下关系成立

能构造 Ai, 使得 A=0 Li0Ri

至于构造方式呢,直接模拟遍历过程即可


Shortest Path 3

D
题目链接
提交记录

题意: 既有点权又有边权的单源最短路径. (权值非负)

对于一条完整的路径,我们把每一条边的终点的点权转到这条边上,就可以直接在边权上跑了。

比如说对于一条边 (u,v,w), val[u], val[v], 我们建边的时候这样建就行了:

add_edge(u,v,w+val[v]);
add_edge(v,u,w+val[u]);

然后直接 dijkstra 跑一遍就行了,注意不要忘了加上 val[1] 的贡献。


Count Arithmetic Subsequences

E
题目链接
提交记录

题意: 给你 {an}, 对于所有的 k[1,n], 求出 {an} 中长度为 k 的等差数列的数量. (元素组成相同但位置不同算作不相同)

考虑 O(n3) 的 dp.

  1. dpi,k,gap 表示以第 i 个元素作为结尾时可以构造的长度为 k 公比为 gap 的等差数列的个数.

  2. O(n2) 枚举 k=aiaj(i>j), 然后可以从 dpj,k,gap 刷表到 dpi,k+1,gap

  3. 边界条件 dpi,1,gap=1, 刷表的同时赋值即可.

注意取模。


posted @   Jairon  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
点击右上角即可分享
微信分享提示