zoukankan      html  css  js  c++  java
  • CTT2022 游记

    OI 生涯的最后一场比赛。

    Day -?

    给深中壬讲题,他们好像自闭了。

    Day -2

    跟 pb 汇合,约了 zzh 和他父母一起吃饭,然后全程就是教练和他父母聊(

    晚上到了酒店,开始摸鱼。

    Day -1

    室友在上预科课,我在摸鱼。

    下午又去做了核酸检测,回来的时候跟着 ___ ___ ___ ___ 一起,感觉很厉害(

    Day 0

    室友在上预科课,我在摸鱼。

    下午听 dzd 讲话。

    Day 1

    rk30,摆大烂了。

    D1T1 末日的魔法少女计划

    给定正整数 \(n,k\),构造 \((n+1)\times(n+1)\)\(01\) 矩阵 \(A\)(行列编号为 \(0\sim n\)),使得

    • \(\forall i\in[0,n]\)\(A_{i,i}=1\)
    • \(\forall i\in[0,n-1]\)\(A_{i,i+1}=1\)
    • \(\forall i,j\in[0,n]\)\(A_{i,j}=1\implies i\le j\)
    • \(\forall i,j\in[0,n]\)\(A_{i,j}=1\land j-i>1\implies\exists i<t<j,A_{i,t}=A_{t,j}=1\)
    • \(\forall i,j\in[0,n]\)\(i\le j\implies (A^k)_{i,j}>0\)

    \(m=\sum_{i=0}^n\sum_{j=i+2}^nA_{i,j}\),你需要使得 \(m\) 尽量小。

    对于所有数据,\(1900\le n\le 2000\)\(2\le k\le 15\)

    本题共 \(14\) 个子任务,分别对应 \(k=2\sim 15\) 的情况,获得 \(s(k)\cdot\max(0,1-\sqrt{\max(0,\frac m{n\cdot f(k)}-1)})\) 分。

    \(k\) \(2\) \(3\) \(4\) \(5\) \(6\) \(7\) \(8\) \(9\) \(10\) \(11\) \(12\) \(13\) \(14\) \(15\)
    \(s(k)\) \(22\) \(14\) \(11\) \(9\) \(7\) \(6\) \(5\) \(5\) \(4\) \(4\) \(4\) \(3\) \(3\) \(3\)
    \(f(k)\) \(7.9870\) \(3.8085\) \(2.3960\) \(1.9610\) \(1.6065\) \(1.4515\) \(1.2540\) \(1.1980\) \(1.0995\) \(1.0705\) \(1.0345\) \(1.0120\) \(1.0015\) \(0.9940\)

    D1T2 魔塔OL

    魔塔一共有 \(n\) 层,魔塔中每个怪物的等级 \(\le m\),难度 \(\le k\)

    初始时魔塔中没有怪物,接下来进行 \(Q\) 次操作:

    • \(1\ x\ y\ z\ a\ b\):表示在魔塔的第 \(x\) 层加入一个等级为 \(y\) 难度为 \(z\) 的怪物,打败该怪物需要耗费 \(a\) 血量,打败后将回复 \(b\) 血量;
    • \(2\ x\):表示将第 \(x\)\(1\) 操作加入的怪物从魔塔中永久移除,保证操作合法;
    • \(3\ x\ y\ z\):表示玩家要将魔塔前 \(x\) 层中所有等级 \(\le y\) ,难度 \(\le z\) 的怪物按照任意顺序杀死,中途血量不能小于 \(0\),询问在最优击杀顺序下初始血量最少是多少?

    对于所有数据,\(n,m,k\le 10^4\),三种操作分别 \(\le 5\cdot 10^4\) 个,\(0\le a,b\le 10^9\)

    • \(\text{Subtask }1\ (5\%)\)\(Q\le 10\)
    • \(\text{Subtask }2\ (5\%)\)\(Q\le 5000\),依赖 \(\text{Subtask }1\)
    • \(\text{Subtask }3\ (10\%)\)\(k=1\)\(b=0\)
    • \(\text{Subtask }4\ (17\%)\)\(n,m,k\le 5\)
    • \(\text{Subtask }5\ (30\%)\)\(m=k=1\)
    • \(\text{Subtask }6\ (33\%)\):无特殊限制,依赖 \(\text{Subtask }2,3,4,5\)

    D1T3 基因编辑

    给定正整数 \(n,L,R,a_1,\cdots,a_n\),在所有满足 \(l<L\)\(R<r\)\(\forall l'<r'\)\(a_{l'}=a_l\land a_{r'}=a_r\implies l'=l\land r'=r\) 的数对 \((l,r)\) 中,求 \(r-l+1\) 的最小值。

    对于所有数据,\(L\le R\le n\le 10^6\)\(a_i\le 10^6\)

    • \(\text{Subtask }1\ (5\%)\)\(n,a_i\le 10^3\)
    • \(\text{Subtask }2\ (10\%)\)\(n\le 10^3\),依赖 \(\text{Subtask }1\)
    • \(\text{Subtask }3\ (25\%)\)\(a_i\le 10^3\),依赖 \(\text{Subtask }1\)
    • \(\text{Subtask }4\ (30\%)\)\(a_1,\cdots,a_{L-1}\) 互不相同,\(a_{R+1},\cdots,a_n\) 互不相同;
    • \(\text{Subtask }5\ (30\%)\):无特殊限制,依赖 \(\text{Subtask }2,3,4\)

    心路历程

    上来对着 T1 自闭了好久,只会个 \(26\) 分。

    然后去看 T3,暴力堆着堆着发现做完了。

    然后去看 T2,暴力堆着堆着然后弃疗了。

    题解

    你只要知道 T1 是 lxl 题,就要把它看成区间半群查询(所有区间都是左闭右开的),\(k=2\) 分治,\(k>2\) 分块。

    T2 是 Claris 题,bitset + 四毛子,复杂度 \(O(nQ/\log n)\)

    T3 是 sb 题,充要条件是 \(a_l\) 只在 \(l\)\(>r\) 的位置出现,且 \(a_r\) 只在 \(r\)\(<l\) 的位置,我的做法是枚举 \(r\) 然后倍增搞搞。

    Day 2

    两天 rk33,摆大烂了。

    D2T1 简单数据结构

    给定长为 \(n\) 的正整数序列 \(\{a_i\}\)\(Q\) 次操作:

    • \(1\ v\)\(\forall i\in[1,n]\)\(a_i:=\min(a_i,v)\)
    • \(2\)\(\forall i\in[1,n]\)\(a_i:=a_i+i\)
    • \(3\ l\ r\):求 \(\sum_{i=l}^r a_i\)

    对于所有数据,\(n,q\le 2\cdot 10^5\)\(a_i\le 10^{12}\)

    • \(\text{Subtask }1\ (10\%)\)\(n,q\le 5000\)
    • \(\text{Subtask }2\ (20\%)\):数据随机生成;
    • \(\text{Subtask }3\ (15\%)\):没有第二种操作;
    • \(\text{Subtask }4\ (55\%)\):无特殊限制,依赖 \(\text{Subtask }1,2,3\)

    D2T2 Datalab

    这是一道交互题

    定义 \(n=2^{13}\),交互器有 \(n\) 个整数 \(s_0,s_1,\cdots,s_{n-1}\),保证 \(s_i\in\{-1,1\}\)\(s_{n-1}=1\)\(s_{n-2}=-1\)

    一台计算机用长为 \(n\)\(\texttt{01}\)\(a\) 表示整数 \(f(a)=\sum_{i=0}^{n-1}s_ia_i2^i\),设其能表示的整数的最小/大值为 \(L,R\),可以证明 \(f\)\(\{\texttt{0,1}\}^n\)\([L,R]\) 的双射,设其反函数为 \(g\)

    你每次可以询问两个长为 \(n\)\(\texttt{01}\)\(a,b\),交互器告诉你 \(g((f(a)+f(b)-L)\bmod 2^n+L)\)

    • \(\text{Subtask }1\ (10\%)\):你可以询问 \(8200\) 次;
    • \(\text{Subtask }2\ (15\%)\):你可以询问 \(5550\) 次;
    • \(\text{Subtask }3\ (75\%)\):评分参数是个反比例函数,但我不记得了。

    D2T3 随机游走

    给定正整数 \(n,m\) 和质数 \(p\)\(n\) 个点的有向图,初始时 \(i\to i+1\),你需要加 \(m\) 条边(允许重边和自环),求从 \(1\) 开始随机游走到 \(n\) 的最大期望步数 \(\bmod p\)\(T\) 组数据。

    \(T\le 3\cdot 10^5\)\(n,m\le 10^{18}\)\(3\le p<10^9\)

    部分分不记得了。

    • \(\text{Subtask }1\ (10\%)\)
    • \(\text{Subtask }2\ (10\%)\)
    • \(\text{Subtask }3\ (20\%)\)
    • \(\text{Subtask }4\ (20\%)\)
    • \(\text{Subtask }5\ (10\%)\)
    • \(\text{Subtask }6\ (30\%)\):无特殊限制。

    Day 2.5

    今天是社会活动日。

    上午 7 点要求集合,比平时还早 /jy

    结果一看是要晨跑,zjr 推着轮椅跟着滑了一圈 /mgx

    麦当劳早餐不太行,牛奶味道好淡啊 /yiw

    然后听了个神必讲座,然后又是讲大学生活。

    吃完午饭之后上了个嘤语课,讲了个老男人 PUA 小女孩的故事,我直呼内行。

    然后又是讲大学生活。

    下午坐车跑了 \(20\text{ km}\) 就为了去参观一个地方可还行,晚饭跟星火的同学一起吃所以我跟 cxr 和 fsy 打了个车跑了 \(20\text{ km}\) 又回来了,我直呼内行。

    晚上吃饭的时候 pb 还在写作业,好卷啊 /jy

    Day 3

    三天 rk33,摆大烂了。

    D3T1 小明的树

    给定 \(n\) 个点的树和 \(2\sim n\) 的排列 \(a_1,\cdots,a_{n-1}\)。初始时有 \(cnt=0\),每个点都未点亮。按排列 \(a\) 的顺序依次点亮,若某个时刻每个被点亮的点的子树均被点亮,则令 \(cnt\) 加上被点亮的点的连通块个数,求操作结束后 \(cnt\) 的值。之后 \(m\) 次删一条边再加一条边,同样求答案。

    对于所有数据,\(n,m\le 5\cdot 10^5\)

    • \(\text{Subtask }1\ (10\%)\)\(n,m\le 8000\)
    • \(\text{Subtask }2\ (20\%)\)\(m=0\)
    • \(\text{Subtask }3\ (70\%)\):无特殊限制,依赖 \(\text{Subtask }1,2\)

    D3T2 出题高手

    给定长为 \(n\) 的整数序列 \(a_i\)\(m\) 次询问 \(L,R\),求 \(\max\{(\sum_{i=l}^ra_i)^2/(r-l+1):L\le l\le r\le R\}\) 的分数表示。

    对于所有数据,\(a_i\)\([-1000,1001]\) 的随机整数。

    • \(\text{Subtask }1\ (5\%)\)\(n,m=500\)
    • \(\text{Subtask }2\ (15\%)\)\(n=10^5\)\(m=1\)
    • \(\text{Subtask }3\ (30\%)\)\(n=5\cdot 10^5\)\(m=1\)
    • \(\text{Subtask }4\ (15\%)\):不记得了;
    • \(\text{Subtask }5\ (35\%)\)\(n=10^5\)\(m=3\cdot 10^5\)

    D3T3 扑克比大小

    给定长为 \(n\) 的小写字符串 \(S\)\(q\) 次询问子串 \(t\),求有多少个本质不同的子串 \(s\) 使得 \(s^\infty<t^\infty\)

    对于所有数据,\(n,q\le 5\cdot 10^5\)

    • \(\text{Subtask }1\ (3\%)\)
    • \(\text{Subtask }2\ (3\%)\)
    • \(\text{Subtask }3\ (4\%)\)
    • \(\text{Subtask }4\ (5\%)\)
    • \(\text{Subtask }5\ (?\%)\)
    • \(\text{Subtask }6\ (?\%)\)
    • \(\text{Subtask }7\ (?\%)\)
    • \(\text{Subtask }8\ (?\%)\)
    • \(\text{Subtask }9\ (?\%)\):无特殊限制。

    Day 4

    四天 rk34,摆大烂了。

    真的退役了诶(

    D4T1 算术

    【模板】阶

    子任务编号 \(T\le\) \(p\le\) 分值
    \(1\) \(10\) \(3\) \(5\)
    \(2\) \(10\) \(10\) \(5\)
    \(3\) \(10^2\) \(10^2\) \(5\)
    \(4\) \(10^2\) \(10^4\) \(11\)
    \(5\) \(10^2\) \(10^6\) \(11\)
    \(6\) \(10^3\) \(10^8\) \(11\)
    \(7\) \(10^3\) \(10^{10}\) \(11\)
    \(8\) \(10^3\) \(10^{12}\) \(7\)
    \(9\) \(10^4\) \(10^{14}\) \(17\)
    \(10\) \(10^5\) \(10^{15}\) \(17\)

    D4T2 经典游戏

    给定 \(n\) 个点的有根树,初始时点 \(i\)\(a_i\) 个石子,两人轮流选择一个石子,将其放到子树内另一个点的位置,不能操作者输。

    \(m\) 次询问 \(x,y\),令 \(a_x:=a_x+1\)(不还原),求 \(y\) 及其相邻点中有多少个 \(r\) 满足以 \(r\) 为根时,后手无论如何在任意一个点加上一个石子(还原),先手都获胜。

    对于所有数据,\(n,m\le 5\cdot 10^5\)

    • \(\text{Subtask }1\ (16\%)\)
    • \(\text{Subtask }2\ (15\%)\)
    • \(\text{Subtask }3\ (14\%)\)\(n,m\le 5000\),依赖 \(\text{Subtask }1,2\)
    • \(\text{Subtask }4\ (13\%)\)\(n,m\le 10^5\),链;
    • \(\text{Subtask }5\ (12\%)\)\(n,m\le 10^5\),菊花;
    • \(\text{Subtask }6\ (11\%)\)\(n,m\le 10^5\),所有 \(y\) 相等;
    • \(\text{Subtask }7\ (10\%)\)\(n,m\le 10^5\),依赖 \(\text{Subtask }4,5,6\)
    • \(\text{Subtask }8\ (9\%)\):无特殊限制,依赖 \(\text{Subtask }3,7\)

    D4T3 随机数据

    给定 \(n\) 件物品和正整数 \(k,d\),物品 \(i\) 的价值为 \(v_i=w_{i\bmod k}\)

    两人轮流取物品,先手可以任意取,设取了物品 \(i\),则后手只能取物品 \((i-d)\bmod n\)\((i+d)\bmod n\) 或跳过本轮操作,已经被取或不可用的物品不能取。

    \(q\) 次询问,改变某个物品的可用状态,求两人都尽可能使取得物品价值之和尽量大的情况下,后手取的物品价值之和。

    \(n\le 10^{18}\)\(k\le 5\cdot 10^4\)\(w_i\) 的范围不记得了 /yun。

    • \(\text{Subtask }1\ (5\%)\)\(n\le 20\)\(q=1\)
    • \(\text{Subtask }2\ (10\%)\)\(n\le 10^5\)\(q=1\),依赖 \(\text{Subtask }1\)
    • \(\text{Subtask }3\ (15\%)\)\(n,q\le 10^5\)
    • \(\text{Subtask }4\ (30\%)\)\(q=1\),依赖 \(\text{Subtask }2\)
    • \(\text{Subtask }5\ (40\%)\):无特殊限制,依赖 \(\text{Subtask }3,4\)

    YOASOBI 真好听。

    韵宝更新了好耶。

    神必 gal 续作 demo 要发了,好耶。

  • 相关阅读:
    【LeetCode】Binary Tree Upside Down
    【LeetCode】171. Excel Sheet Column Number
    【LeetCode】Longest Substring with At Most Two Distinct Characters (2 solutions)
    【Algorithm】回溯法与深度优先遍历的异同
    【C++】自定义比较函数小结
    【LeetCode】4. Median of Two Sorted Arrays (2 solutions)
    【LeetCode】3. Longest Substring Without Repeating Characters (2 solutions)
    【LeetCode】Add Two Numbers
    【LeetCode】5. Longest Palindromic Substring
    【LeetCode】6. ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/AThousandMoons/p/15654991.html
Copyright © 2011-2022 走看看