首页 > 其他分享 >THUWC2025题解

THUWC2025题解

时间:2025-01-18 16:35:31浏览次数:1  
标签:元素 删除 题解 THUWC2025 个数 贡献 Delta 维护

Day 1

T1

构造一个排列,使满足最多的形如 \([l,r]\) 内单调递增/减。

一个简单的线段树优化 DP,设状态 \(f_{i,0/1}\) 即可转移,\(O(n\log n)\)。

T2

支持往集合中加三维带权点,查询集合中没有任何一维与给出点对应维度相等的最大点权。

唐题。

一种暴力的想法是三维数点之类的,不太能过。

考虑维护已有的 \(w\) 最大的点 \(b_0\),如果这个点可以,就直接得出答案,否则利用维护好的 \((x),(x,y),(x,y,z),(y),\dots\) 必须与 \(b_0\) 不同,其他任意的最大权点 \(b_{1,2,\dots,8}\) 找答案。

注意到对于 \((x)\) 必须与 \(b_0\) 不同的点 \(b_1\),还要再维护 \((x)\) 必须与 \(b_0\) 不同、\((y),(z),(y,z)\) 必须与 \(b_1\) 不同的 \(3\) 个最大权点。

类似的算一下可以发现一共要维护 \(1+3\times6+3\times2+1=26\) 个点。

于是复杂度 \(O(26n)\)。

T3

对于序列 \(S,S_i\in\{1,-1\}\),参数 \(k\) ,维护一个大小为 \(k\) 的栈,\(+1\) 加入元素(加入后栈大小 \(\le k\)),\(-1\) 弹出元素(非空时)。若加入失败,贡献 \(+8\);若成功删除,贡献 \(+16\);若结束时栈中剩下 \(x\) 个元素,贡献 \(+3x\)。设总贡献为 \(f_k(S)\)。\(Q\) 次询问求 \(\max\limits_kf_k(S[l,r])\)。

首先算一个 \(8(r-l+1)\) 的贡献,这样失败的删除 \(-8\);最后剩下的元素 \(-5\)。

不妨最初让 \(k=0\),不难发现,只要 \(\Delta>0\) 一定增大 \(k\),且 \(\Delta\) 单调。所以最终 \(k\) 的取值就是第一个 \(\Delta\le0\) 的位置。注意到,此时失败的删除个数等于 \(k=\infty\) 时的个数。

已知失败的删除个数后,可以简单算出最后剩下的元素。

T4

给出操作序列 \(S_i\in\{1,2,3\}\),变量 \(s=0,a,b\),要选出 \(k\) 个操作依次执行,使 \(s\) 最大。

  1. s+=a
  2. a+=b
  3. s*=2

首先,选出的 \(2,3\) 操作必然是一个前缀、后缀。其次是最多选 \(O(\log)\) 个 \(1,2\) 操作。

枚举 \(2,3\) 操作个数,然后再怎么搞一搞,存数的话用 \(a\times 2^b,2\perp a\)。

标签:元素,删除,题解,THUWC2025,个数,贡献,Delta,维护
From: https://www.cnblogs.com/mRXxy0o0/p/18678551

相关文章

  • PKUWC2025部分题解
    Day1A注意到,原题等价于构造一个\(a+b\)个点的完全图,使最大独立集\(<a\),且边数最小。很难发现,图必然被划分成\(a-1\)个完全图。据此DP或令\(a-1\)个图点数平均。CDAG上考虑暴力。设\(f_{u,i}\)表示第\(i\)轮在\(u\)是否先手必胜。转移枚举相邻点就好,\(\large......
  • [ZJOI2014] 力 题解
    容易发现:\[E_i=\sum_{j=1}^{i-1}\frac{q_j}{(i-j)^2}-\sum_{j=i+1}^n\frac{q_j}{(i-j)^2}\]不妨设\(a_i=q_i,b_i=\dfrac1{i^2}\):\[E_i=\sum_{j=1}^{i-1}a_jb_{i-j}-\sum_{j=1}^{n-i}a_jb_{j-i}\]发现前半部分就是多项式乘法,后半部分与[BZOJ2194]一致。直接FFT干过去即可......
  • 线性dp+背包问题题解
    线性dp理解递推/记忆化搜索,有很多种理解方式递归重叠子问题的记忆化搜索:像这里例如\(f[3]\)可以通过一次计算得到,保存答案,下一次直接调用即可,省去很多复杂度我们从此引出dp第一个性质:最优子结构大问题的最优解包含小问题的最优解,并且小问题的最优解可以推导出大问题的最优......
  • P1076 [NOIP2012 普及组] 寻宝 题解
    题目传送锚点在博客园食用更佳本题纯纯模拟题,甚至连大模拟都算不上。别问我是怎么知道的,问就是看那恶心的题目描述、标签和题目难度仅为黄知道的。好了,上思路。既然是大模拟,那就按照题目描述给的思路来,一层一层往上爬呗。一下是两点注意事项:输入时,可以考虑用二维数组或结构......
  • P1982 [NOIP2013 普及组] 小朋友的数字 题解
    题目传送锚点在博客园食用更佳题意有一列小朋友,他们每个人都有一个值。定义每个小朋友的特征值为祂及祂前面人值的最大子段和。又定义每个小朋友的数字为祂前面人中的一个人的特征值加本身值的最大值。。。思路把题意用人话说出来即为思路:先输入每个小朋友的值\(a_i\);再......
  • AGC008 题解
    A简要题意:花费1代价+1或取反,求把\(x\)变成\(y\)的最小代价显然的,取反最多只会用两次,且必在头尾,那么直接枚举就完了代码:#include<bits/stdc++.h>#defineintlonglong#definerep(i,l,r)for(inti=l;i<=r;i++)#defineper(i,l,r)for(inti=l;i>......
  • [BZOJ2194] 快速傅立叶之二 题解
    看名字,然后准备转化为多项式乘法。\[c_k=\sum_{i=0}^{n-k-1}a_{i+k}b_i\]将\(a\)反转,得:\[c_k=\sum_{i=0}^{n-k-1}a_{n-i-k-1}b_i\]这已经是多项式乘法的格式了,直接多项式乘法,最后对函数\(c\)的\(0\)到\(n-1\)次项倒序输出即可。时间复杂度\(O(n\logn)\)。#include......
  • Codeforces Round 997 (Div. 2) 题解(A~D 题)
    CodeforcesRound997(Div.2)题解(A~D题)A因为\(x,y<m\),所以每次必有重叠的长方形。且重叠部分长为\(m-x\),宽为\(m-y\),用总周长减去算重了的部分就行。注意处理第一个长方形的边界条件。B.FindthePermutation按照\(g_{i,j}\)的大小关系直接写cmp然后sort就......
  • 题解:CF140A New Year Table
    CF140ANewYearTable思路注意到题目中提到了大圆与小圆相切,我们可以计算由两条经过小圆周长与大圆圆心的切线组成的圆心角的度数。但是这个角度其实不好算,所以我们可以求出它一半的正弦值,也就是\(b\div(a-b)\),然后用asin函数求出其度数(以弧度为单位)。最后答案就是判断\(......
  • Desant 2 题解
    LibreOJ-3614Luogu-P9040很好的题。先不考虑区间,先想\(l=1,r=n\)的情况。考虑dp,\(f_i\)表示考虑\([l,r]\)的答案。则容易得到:\[f_i=\max\left\{f_{i-1},f_{i-k}+s_i-s_{i-k}\right\},f_0=0\]其中\(s\)为\(a\)的前缀和。这个转移本身是\(\Theta(n)\)的。遇......