logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

OMRON Corporation Programming Contest 2025 (AtCoder Beginner Contest 397)题解ABCDE

不过如果恰好有两个候选链,并且它们之和正好等于 K–1,则 v 可以用自己将这两个链“对接”,凑成一条完整的路径(这时 v 就被“消耗”,不向上传递候选链)。对于 (x, y) 与 x^3 - y^3 = N,我们有 x^3 - y^3 = (x - y) · (x^2 + xy + y^2) = d · (x^2 + xy + y^2)。, K-1,都有一条边连接顶点 P(i,j) 和 P(i,

#算法#c++#数据结构 +1
AtCoder Beginner Contest 396题解ABCDE

将每个约束视作等式Au​⊕Av​=z,注意到如果我们固定某个连通块内一个顶点的值(例如令它的“电势” d=0),那么对任意顶点 v 都有Av=t⊕dv。第 i 个黑球( 1≤i≤N )的值是 Bi​ ,第 j 个白球( 1≤j≤M )的值是 Wj。在所有这样的选择中,求所选球的数值之和的最大值。对于某一位 j(权值 2^j),设连通块中有 cnt1个顶点在该位为 1,其余 cnt0个顶点在该位为

#算法#数据结构#图论 +1
Codeforces Round 835 (Div. 4)题解ABCDEFG

思路:注意到数据范围是2e5思考如何优化计算方式,考虑到逆序对的定义是 i < j and ai > aj,而且每次只修改一个字符,思考到可以计算一下在当前位置的逆序对数量,对0 / 1分情况讨论,对另一半取反然后取最大值即可,逆序对数量可以用类似前缀和的方式快速计算。现在对于任意一个单词,定义:它需要一个最小的大小为 x 的字母表,当且仅当这个单词只用到了英文字母中的前 x 个字符。题意:你有

#算法#c++#数据结构 +1
AtCoder Beginner Contest 395 题解ABCDEF

思路:由题意有,对于一个ai,找下一个理他最近的ai,注意到N < 1e5所以双重遍历不理想,思考把相同的元素融入到一个vector里面,每次看vector里面两个相邻的元素即可,转化到On左右。但是这样显然有一个问题,在对于2操作进行模拟的时候,要把两个巢穴的鸽子全部清空,然后互相copy,当N过大时,两个互相copy的过程能达到On^2,显然超时。考虑一下优化方式,不涉及的巢穴中去鸽子,2操作

#算法#数据结构#图论 +1
Codeforces Round 827 (Div. 4)题解ABCDEFG

题意:给定一个长为 n (2≤n≤2×105) 的序列 a (1≤ai​≤1000),求 gcd(ai​,aj​)=1max​{i+j}。想要确定 bi​,只需要枚举还没有选择的 aj​,使得 bi​=bi−1​oraj​ 最大 即可。求每次操作之后,是否可以重新排列 s 和 t 的字符,使 s 字典序比 t 小,如果可以,则输出“YES”,否则输出“NO”。q 次询问,对于每一个 ki​ (1≤

#算法#c++#数据结构 +1
AtCoder Beginner Contest 390 题解ABCDEF

对于所有以 i 为右端点的子数组 [L, i],如果数字 a[i] 在子数组中是首次出现(即 L > pos[a[i]]), 那么该子数组的 f(L, i) 需要增加 1 次操作。新增子数组个数为 i - pos[a[i]]。1.如果 a[i]-1 在子数组中已经出现(且最后出现位置晚于上一次 a[i] 出现的位置),那么对于部分子数组,a[i] 与 a[i]-1 可以合并,减少了操作次数。对于每

#算法#数据结构#图论 +1
到底了