ICPC regional
按开题顺序写的,主要是为了节省写代码的时间。
全是 Asia East Continent,别的也没空做。
2024
The 2024 ICPC Asia East Continent Online Contest (I)
unofficial contest link on QOJ
A. World Cup
直接模拟。
M. Find The Easiest Problem
直接模拟。
F. Make Max
一个区间从最大值向其两侧扩张,每次扩张 1 就是最优的,所以建出笛卡尔树然后在每层算不是最大值的数的个数就行了。
G. The Median of Median of Median
二分答案,把 \(a\) 中大于 \(x\) 的标记为 \(1\),等于 \(x\) 的标记为 \(0\),小于 \(x\) 的标记为 \(-1\),对于 \(b\) 做同样处理,然后对于所有 \([l,r]\) 求和就行了。
C. Permutation Counting 4
膜 2 这种东西看起来就很诈骗啊。我靠这是什么。

这玩意第五简单???
L. Bull Farm
考虑到评测机性能差距,本题较官方赛事增加了 3 秒的额外时限。
我常常追忆过去。
生命瞬间定格在脑海。我将背后的时间裁剪、折叠、蜷曲,揉捻成天上朵朵白云。
云朵之间亦有分别:积云厚重,而卷云飘渺。生命里震撼的场景掠过我的思绪便一生无法忘怀,而更为普通平常的记忆在时间的冲刷下只留下些许残骸。追忆宛如入梦,太过清楚则无法愉悦自己的幻想,过分模糊却又坠入虚无。只有薄雾间的山水,面纱下的女子,那恰到好处的朦胧,才能满足我对美的苛求。
追忆总在不经意间将我裹进泛黄的纸页里。分别又重聚的朋友,推倒又重建的街道,种种线索协助着我从一个具体的时刻出发沿时间的河逆流而上。曾经的日子无法重来,我只不过是一个过客。但我仍然渴望在每一次追忆之旅中留下闲暇时间,在一个场景前驻足,在岁月的朦胧里瞭望过去的自己,感受尽可能多的甜蜜。美好的时光曾流过我的身体,我便心满意足。
过去已经凝固,我带着回忆向前,只是时常疏于保管,回忆也在改变着各自的形态。这给我的追忆旅程带来些许挑战。
我该在哪里停留?我问我自己。
翻译成人话就是离线询问,扫描线,bitset 维护连通性,每次只修改修改了联通性的,均摊 \(O(n^2)\)。
H. Rainbow Bracket Sequence
我们的限制抽象出来就是第 \(i\) 种颜色的个数不小于 \(l_i\),以及前 \(2i-1\) 个位置左括号不超过 \(i\) 个。这个约束很难拿简单的自动机状态维护,考虑用上下界网络流维护。对于颜色 \(b_i\) 建点,对于序列的位置 \(a_i\) 建 \(2n+1\) 个点,括号里面分别表示 (起点,终点,下界,上界,费用),颜色对于序列的限制体现在 \((b_{c_i},a_i,0,1,v_i)\) 上,颜色个数的下界体现在 \((S,b_i,l_i,\infty,0)\) 上,括号数的限制体现在 \((a_i,a_{i+1},\lfloor\frac{i}{2}\rfloor,n,0)\) 上,左括号个数体现在 \((2n+1,T,n,n,0)\) 上,然后跑最大费用流就行了。好象可以把下界转化成上界然后直接跑最大流?我不清楚。
The 2024 ICPC Asia East Continent Online Contest (II)
unofficial contest link on QOJ
unofficial contest link on gym
单挑 VP 5h 4 题 rk 1500+,唐尽了。
F. Tourist
直接模拟。
J. Stacking of Goods
瞎勾吧乱猜猜对了,就是从下往上按 \(c_i/w_i\) 从大到小。证明可以考虑逐项交换。
I. Strange Binary
if(n==0)return puts("NO"),void();
fo(i,0,30){if(((n>>i)&1))one.pb(i);}
if(one[0]>1){puts("NO");return;}
fo(i,0,one[0]-1)ans[i]=0;
fo(i,0,one.size()-2)
{
int x=one[i],y=one[i+1];
ans[x]=1;if(x+1==y)continue;
fo(j,x,y-2)ans[j]=-1;
ans[y-1]=1;
}
fo(j,one[one.size()-1],30)ans[j]=-1;ans[31]=1;
A. Gambling on Choosing Regionals
肯定是选人数最少的打,然后维护除了当前学校之外的一个桶然后在桶上做后缀查询,维护的时候可以在所有的桶上做减法,维护单点修改后缀和查询可以用 BIT。
然后是场下开的。
L. 502 Bad Gateway
最优策略一定是确定一个阈值 \(c\),只要大于 \(c\) 就一直随,小于 \(c\) 就减下去,假设选中 \(\leq c\) 的概率是 \(p=c/t\),那么
发现是一个对勾函数状物,然后维护 \(\sqrt{2n}\) 处的函数值就做完了。
G. Game
我草我场上要是看了这个题我能过 5 个。/fn/fn/fn
相当于是做了个辗转相减,用辗转相除加速即可。
E. Escape
如果可以停滞不前的话就对于每个点记下最开始什么时候这个点会被杀戮机器人走到然后在这个上面跑最短路。
对于题目要求就是分奇偶记什么时候最先被走到就行了。
C. Prefix of Suffixes
直接动态维护不就行了?为啥要整动态 z 函数。
K. Match
异或大于等于某个数考虑从高位到低位扫。设 \(f(A,B,k)\) 表示集合 \(A\) 和集合 \(B\) 按 \(k\) 匹配得到的一个多项式,\([z^n]f(A,B,k)\) 表示匹配数量为 \(n\) 的方案数。设 \(A\) 中当前位为 1 的为 \(A_1\),当前位为 0 的为 \(A_0\),\(B_0,B_1\) 同理,如果当前位 \(k\) 是 0,那么先算出 \(f(A_0,B_0,k)\) 和 \(f(A_1,B_1,k)\),然后剩下的随便匹配;如果当前 \(k=1\) 就只能由 \(f(A_0,B_0,k)\) 和 \(f(A_1,B_1,k)\) 贡献答案。时间复杂度 \(O(n^4)\),我没写。
The 2024 ICPC Asia East Continent Final Contest. Warm Up.
unofficial contest link on QOJ
A. Guess the Number
太困难了,让我们使用随机化算法。
2024 ICPC Asia Chengdu Regional Contest (The 3rd Universal Cup. Stage 15: Chengdu)
unofficial contest link on gym
vp 麻了。
L - Recover Statistics
ans[1...50]=a, ans[51...95]=b, ans[96...99]=c, ans[100]=inf
A - Arrow a Row
构造即可。
J - Grand Prix of Ballance
模拟。
G - Expanding Array
李硕太实力了。讨论即可。
I - Good Partitions
对于所有 \(a_i>a_{i+1}\) 的位置应该有边界在上面,即 \(k|i\),也就是求所有这样的 \(i\) 的 \(\gcd\),维护即可。
E - Disrupting Communications
维护子树内和子树外的就行了。
B - Athlete Welcome Ceremony
预处理 \(dp(i,j,k,c)\) 表示用了 \((i,j,k)\) 个 \((a,b,c)\) 最后一个字符是 \(c\) 的方案数,答案就是做了个三维前缀和。
K - Magical Set
怎么是流子啊。
考虑知道了最后是什么数怎么做。设原来的是 \(\{a_n\}\),后来的是 \(\{a_n'\}\),设 \(a_i=\prod p_i^{c_i},a_i'=\prod p_i^{c_i'}\),那么次数显然就是 \(\sum\sum c_i-c_i'\),因为如果这个数重了就让那个重了的数先走一步。设 \(f(i)=\sum c\),那么相当于是 \(a_i\) 和 \(a_i'\) 做匹配,权是 \(f(i)-f(i)'\)。
原题中我们要求 \(a'\) 互不相同并且要最大化匹配代价,考虑建模(话说这能想过来挺神秘的)。建立二分图跑最大费用最大流就行了。
这脑回路很清奇了。这道题告诉我 ICPC 碰到神秘东西直接上流子就行了。
D - Closest Derangement
\(n\) 是偶数的时候最小值肯定是 \(n\),只需要两两配对交换位置即可;\(n\) 是奇数的时候容易构造使差是 \(n+1\).
2024 ICPC Asia Hangzhou Regional Contest (The 3rd Universal Cup. Stage 25: Hangzhou)
unofficial contest link on gym
K - Kind of Bingo
直接扫操作终点 \(x\),只要看 \([1,x]\) 中 \(x\) 减去最多的同一行的数量是否小于等于 \(k\) 就行了,可以 seg 维护一下。
A - AUS
对于 \(f(A)=f(B)\) 的限制,如果 \(A_i\not=B_i\) 那么 \(f(A_i)=f(B_i)\) 应当成立,建图连一块,\(f\) 的一种方式是吧每个连通块都映射到同一个串上,如果 \(A_i,C_i\) 在同一个连通块那答案就是 NO 否则一定有答案。

浙公网安备 33010602011771号