像潮落潮涌,送我奔向自由。|

寂静的海底

园龄:3年2个月粉丝:58关注:15

atcoder近期比赛记录

ABC 235

A , B , C , D跳过


ABC235E MST+1

题意:给出无向图,每次询问对于若新加入边(u,v,w)能否成为最小生成树中的边。

P4180,若这条边可能成为最小生成树上的边,则该边两端点在最小生成树上的路径中一定有一条不小于w的边。

LCA+树上倍增 即可解决。

将询问离线再跑MST也是一种解决方式。


ABC235F Variety of Digits

[1,n]中包含数字c1cm的数之和 , n10104

考虑数位dp,用dp[i][st]表示前i位,数字的出现情况为st的和。

记忆化搜索形式更方便实现。


ABC235G Garden

有n个花园,每个果园要放至少一种植物,三种植物分别有a,b,c个,求方案数。

n4 dp不说了。

考虑n2做法:容斥,以将问题转化为好解决的子问题。

所有果园都种了至少一种植物 = 所有种植情况 - 有至少一个指定的果园没有种植物 + 至少两个指定的果园没有种植物 ....

ans=i=1nf(i)(1)i

其中f(i)=Cnik=1min(a,ni)Cnikk=1min(b,ni)Cnik=1min(c,ni)

注意是指定哪些果园没种,可以有别的果园没有种植

我们可以O(n)地求出f(i),所以总复杂度为平方级别。

然后将上面的式子的三个部分分别看作A(x),B(x),C(x)那么可递推计算A(x),B(x),C(x),在纸上推一下可以发现。

A(x)=A(x+1)2Cni1a

b,c同理。

递推即可,复杂度为O(n)


ARC133

ARC 133A跳过。


ARC 133B Dividing Subsequence

题意:给出两个排列p,q,在两个排列中分别找出两个子序列满足以下要求:

1 . len(p)=len(q)

2 . pi|qi

3 . 在满足以上要求的前提下长度最长 , 求这个长度

首先想到O(n2) LCS的dp , 把其中的pi=qi换成pi|qi即可。

考虑优化。

发现题目给出的是两个排列,我们试着处理出对于每个qi能够与之配对的pi,其总数是nlogn级别。

定义dp[i]表示q的前i个对应到p中的最大长度。

那么dp[i]=minj<i,pj|qidp[j]+1

用线段树将区间[1,i1]取max为mx,并用mx+1去区间最值操作更新即可,为了避免重复计算贡献,将每一个对应的更新存下来最后操作。


ARC 133C Row Column Sums

跳过


ARC 133D Range XOR

稍后整理


ABC236

ABC236 A , B , C , D 跳过。


ABC236E Average and Median

给出一个序列A,您需要选择一个子序列,两个相邻的数不能都不选择,分别求:

子序列的平均数的最大值。

子序列的中位数的最大值。

考虑中位数的套路:二分中位数,大于等于的视为1,小于的视为0,看能否选择和大于等于总数的一半。

然后可以dp进行check:

dp[i][1] 选了上一个

dp[i][0] 没选上一个

同理,平均数也考虑类似的套路,设平均数为x,二分x,将所有数减去x,求最后能否使得和大于零,同样使用dp。


ABC236F Spices

每个数有一个代价,求集合{12n1}的线性基且代价最小。

将这些数按代价排序,按顺序插入线性基,能插入就加上代价,贪心求出答案。

证明稍后补充。


ABC236G Good Vertices

题意:在一个有向图上依次连边,求每个点在最早什么时刻可以恰好经过L条边走到。

题意可以转化为 在t时刻连的边的边权为t,求路径上最大边权的最小值。

(然后我就开始二分了,艹)

dp[i][j]表示走到点i,恰好走j条边的最小最大边权,则有转移:

dp[i][j]=mink=1n{max{dp[i1][k],w(k,j)}}

然后我们就有了O(n3L)的dp

考虑怎么优化

另一个著名的问题:点u到点v的代价是路径上的边权之乘积,求一个点到另一个点的所有长度为L的路径的代价之和。

这道题目的转移就为dp[i][j]=k=1ndp[i1][k](w[k][j])

就是矩阵乘法转移,维护dp[i][1n]矩阵乘上边的邻接矩阵就可以得到dp[i+1][1n]

F(i)=[dp[i][1]dp[i][2]dp[i][n]]=[dp[i1][1]dp[i1][2]dp[i1][n]]×K

其中K为图的邻接矩阵

将上面那一题的,+ 换成 max,min 就是此题了

由于min,max运算都有交换律,结合律,且之间存在分配律,所以同理可以使用广义矩乘维护,使用广义矩阵快速幂加速即可。

F(i)=F(0)Ki


ARC134

ARC134A跳过


ARC134B Reserve or Reverse

题意:给出一个字符串|S|2105 ,选择一个子序列,翻转它,使得翻转后的字符串的字典序最小,求翻转后的字符串。

题意可以转化为k对呈包含关系的交换。

贪心地,我们要把小的字符换到前面,对于一个位置i,选择能换的最小的字符一定是最优的,所以对于每个字符找到它和上一次交换之间最小且尽可能靠右的字符即可。

然后我就写了线段树区间查尽可能靠右的最小字符(还好码出来了)。。。

正解:英文字母只有26个,开26个vector存每个字母的位置即可。


ARC134C  The Majority

稍后整理


ABC237

ABC237A , B , C , D跳过


ABC237E skiing

题意: 有一些点,每个点有高度,有一些边连接这些点,从高的点到低的点的价值是高度差,从低的点到高的点的代价是负的高度差的两倍,求一条代价最大的路径。

发现此图”来回“的价值一定是小于0的,所以最长路最多只会经过每个点一次,spfa即可。

冷知识:spfa没死

可以证明spfa在此题的复杂度正确(但我不会


ABC237F |LIS| =3

给出 n(103),m(10)求满足以下要求的序列的数量mod 998244353。

由于总共不同的输入只有104种,所以O(1)打表暴捶正解/kk

  • 1.长度为n

  • 2.由[1,m]中的数组成

  • 3.其LIS的长度恰好为3

状态类似基于元素的LIS

这个元素能使得LIS的长度增加当且仅当它大于等于长度为1/2/3的lis的最后项的最小值。

所以状态就定义出来了dp[i][x1][x2][x3]表示前i个数最小值为x1,长度为2的LIS的最小值为x2,长度为3的LIS的末尾的最小值为x3

刷表转移即可

复杂度O(nm4)


ABC237G Range Sort Query

题意:

给出排列p={1n}q次操作,每次为(l,r,c)[l,r]内的元素按升序(c=1)/降序(c=2)排列,求最后元素c的位置。

日本人们致敬了河北省选 <排序> ,真是有创造力!(yygq

所以可以直接模仿那道题的思路()

较为明显的,若查询的数5,则6,7,8等价,1,2,3,4等价,因为其他元素之间的顺序不会影响5的位置。

所以维护线段树维护两个信息:区间中比这个数大的数的数量,比这个数小的数的数量即可。

一个trick :将大于这个数的数设成2,小于设成0,这个数本身设成1,然后区间求和、区间替换即可。

区间求和得到2的数量即sum2


ABC238

ABC238 A , B , C , D跳过


ABC238E Range Sums

题意:

有n个数,给出q组[l,r]表示你知道[alar]的和,求最终能否求出整个a数组的和。

套路题 。

考虑前缀和,a1++an=sn

已知s0=0

每个区间和转换为srsl1能互相推导。

使用并查集即可。

最后检查0和n是否在同一个并查集里。


ABC238E Two Exams

题意:有n个人,每个人有两个排名,现在需要选择k个人,任意一个选择的人和任意一个没选择的人 , 被选择的人应至少有一个排名小于没有被选择的人。

求方案数mod 998244353

kn300

发现答案与顺序无关,先按排名一为关键字排序,这样按顺序考虑就不要处理第一排名了。

令排序后的排名2序列为q1qn

则每一个i前面的没有被选择的qj一定满足qj<qi

dp[i][j][k]表示前i个元素,选择了j个,没有被选择的最小qi为k的方案数。

若选第i+1个,则dp[i+1][j+1][min(qi+1,k)]dp[i][j][k]

不选的前提为qi+1>k

dp[i+1][j][k]dp[i][j][k]

答案即为dp[n][k][1n]


ABC238F  Cubic?

题意:给出序列a1an , 以及q个询问(L,R)

每次询问i=LRai是否为一个完全立方数。

n,q2×105,ai106

正解不太理解的神奇随机化算法稍后来补充。

因为区间询问可离线,所以考虑莫队。

先将所有数分解质因数并存到vector中

莫队维护所有质因数项的次数mod 3的余数

在加上一个ans维护目前不是3的倍数的项的个数,若查询时为0则答案为Yes。


Ex好像不可做(小声


总结:假期没干啥,太颓了,基本上就只打了这么点题加几道广义矩乘和线性基,,, 只是保持一下手感吧,人废了,其他人一个比一个卷%%%

posted @   寂静的海底  阅读(20)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起