首页 > 其他分享 >The 2023 ICPC Asia Nanjing Regional Contest / The 2nd Universal Cup. Stage 11: Nanjing

The 2023 ICPC Asia Nanjing Regional Contest / The 2nd Universal Cup. Stage 11: Nanjing

时间:2024-09-30 22:12:33浏览次数:5  
标签:11 Contest 复杂度 Nanjing 从大到 物品 Theta 排序

比赛链接

I. Counter

按时间排序即可,注意可以不清零。

F. Equivalent Rewriting

对于每个位置,把所有有这个位置的操作编号连向这个位置最终的值,做个拓扑排序,看看字典序最大的即可。复杂度 \(\Theta(n+m)\)。

C. Primitive Root

枚举和 \(m\) 的公共前缀,设 \(i\) 位置 \(m\) 是 \(1\) 但是取了 \(0\),前面的这些数异或 \((p-1) \equiv t \pmod{p}\)。那么剩下 \(0 \sim i - 1\) 这些位置可以任意取,就是 \([0,2^i)\) 模 \(p\) 同余 \((1-t)\),直接算就行。复杂度 \(\Theta(\log m)\)。

G. Knapsack

把物品按照美丽程度 \(v_i\) 为第一关键字从大到小排序,\(w_i\) 为第二关键字从大到小排序。显然 \(k\) 个免费的物品都是取的相同美丽程度的最大的几个,所以按 \(w_i\) 是从大到小排序。设 \(k\) 个物品取了排序后的 \(p_1 < p_2 < \cdots < p_k\) 这些物品,则 \(1 \sim p_k\) 这些物品肯定都被取走,因为假如 \(t<p_k\) 没被取走,那么把 \(p_k\) 丢掉换成 \(t\) 肯定不劣。那么对后缀做个背包,枚举 \(p_k=i\),前缀需要的花费是重量前 \(i-k\) 小的重量和。复杂度 \(\Theta(nW+n^2)\)。

A. Cool, It’s Yesterday Four Times More

要验证一个点 \((x,y)\) 是否合法,那就是对于所有其他的 \((x',y')\),都有一种移动方式使得 \((x,y)\) 没撞墙 \((x',y')\) 撞墙。设一个点 \((x,y)\) 所在的 . 联通块是 \(S_{x,y}\),那么它只能在这个联通块内运动。考虑不合法的条件,也就是存在 \((x',y')\) 使得 \(S_{x',y'}\) 在和 \(S_{x,y}\) 以 \((x',y')\) 和 \((x,y)\) 两点重合的方式平移后 \(S_{x',y'}\) 完全覆盖 \(S_{x,y}\)。

所以,对于一个联通块 \(S\),若存在联通块 \(S'\) 使得 \(S'\) 能以某种平移方式完全覆盖 \(S\),则 \(S\) 里的点都不合法,否则都合法。那么对于 \(S\) 种每个点,随便找个点 \((x,y)\) 作为中心点,然后对于每个点 \((a,b)\),枚举其他空的位置 \((c,d)\),然后将 \(cnt_{c+(x-a),d+(y-b)}\) 加 \(1\),若不存在 \(cnt_{i,j}((i,j) \neq (x,y)) = |S|\),则 \(S\) 合法。

复杂度 \(\Theta(n^2m^2)\)。

L. Elevator

把所有物品按照 \(f\) 从大到小排序取,把物品分成 \(w=1,2\) 的两组,分别为序列 \(a,b\)。显然同一组内是从大到小取的,而都能从大到小取是因为若一次取了个 \(b_i,b_j\),第二次取了 \(a_k\),并且 \(b_i < a_k < b_j\),把 \(a_k\) 和 \(b_i\) 交换总不劣。那么做个双指针就行,细节问题上注意有时候背包放到 \(k-1\) 时可以额外拿一个 \(w=1\) 的物品。

复杂度 \(\Theta(n\log n)\)。

M. Trapping Rain Water

注意到前缀 \(\max\) 和后缀 \(\max\) 一定会出现一个交点 \(i\),使得 \(\forall j<i,pre_j < suf_j \land \forall j\ge i,pre_j \ge suf_j\),那么答案就是 \(\sum\limits_{j=1}^{i-1} suf_j + \sum\limits_{j=i}^n pre_j-\sum\limits_{j=1}^n a_j\)。 \(pre_i,suf_i\) 可以利用颜色段维护,也可以用线段树二分+区间覆盖维护,然后二分求出交点即可。复杂度 \(\Theta(n\log n)\)。

D. Red Black Tree

考虑朴素 dp,设 \(f_{u,i}\) 为 \(u\) 子树合法且 \(u\) 到每个叶子长度有 \(i\) 个黑色,\(g_{u,0/1}\) 为 \(u\) 变成 \(0/1\) 的代价。显然有转移 \(f_{u,i} = \min\limits_{j=\{0,1\}}(g_{u,j} + \sum\limits_{v \in to(u)} f_{v,i-j})\)。

考虑转移是一个 \(\min+\) 卷积,且 \(g_u\) 是凸的,所以 \(f_u\) 也是凸的。那套路地维护 \(f_{u,0}\) 和它的单调不降差分数组。对于 \(\sum\limits_{v \in to(u)} f_{v,i}\) 可以直接暴力合并,剩下子树内最大深度最小的那个,复杂度参考长链剖分,为 \(\Theta(n)\)。然后是和 \(g_u\) 合并时,差分后 \(g_{u,1}=\pm 1\),根据闵可夫斯基和,合并时找到 \(f_u\) 差分数组中第一个大于它的位置前面插入即可,直接用 multiset 维护可以 \(\Theta(n\log n)\)。但是考虑到值域只有 \(\pm 1\),所以可以把差分数组拆成正数从大到小的 vector 数组,负数从小到大的 vector 数组,还有 \(0\) 的个数,每次插入直接在对应号的最后 push_back 即可。复杂度 \(\Theta(n)\)。

标签:11,Contest,复杂度,Nanjing,从大到,物品,Theta,排序
From: https://www.cnblogs.com/MiniLong/p/18442481

相关文章

  • 【Proteus仿真】【32单片机】DHT11温湿度检测系统设计
    目录一、主要功能二、使用步骤三、硬件资源四、软件设计五、实验现象联系作者一、主要功能1、温湿度检测与LCD显示2、超过上限,降温除湿模块启动3、低于下限,升温增湿模块启动4、温湿度阈值设置5、超限报警二、使用步骤系统运行后,LCD1602显示传感器检测的温湿度......
  • 计算机知识科普问答--24(116-120)
    文章目录116、什么是文件的索引节点?什么是文件的索引节点(Inode)?一、Inode的基本概念1.定义2.作用二、Inode的内容1.文件标识信息2.文件属性信息3.文件位置和结构信息4.文件状态信息三、Inode的工作原理1.文件操作流程2.Inode与文件系......
  • 题解:P11062 【MX-X4-T2】「Jason-1」加法
    考虑两种情况:\(a,b\)符号相同:考虑经过操作后\(a,b,\lverta-b\rvert\)会变成什么。:\(a\)\(b\)\(\lverta-b\rvert\)操作1\(a+b\)\(b\)\(\lverta\rvert\)操作2\(a\)\(a+b\)\(\lvertb\rvert\)可以看出只进行零次或一次操作后可以取到最小值......
  • 题解:P11129 【MX-X5-T1】「GFOI Round 1」Inverted World
    题目要求:\((a_l+\cdots+a_r)\div(r-l+1)\)是整数。即\(\frac{(a_l+a_r)\cdot(r-l+1)\div2}{r-l+1}\)为整数。即\(\frac{(a_l+a_r)}{2}\)为整数。即\(a_l+a_r\)为偶数。即\(m+(l-1)\cdotd+m+(r-1)\cdotd\)为偶数。即\(2m+(l+r-2)\cdotd\)为偶......
  • AtCoder Beginner Contest 365题解
    A-LeapYear按照题意模拟即可。codeB-SecondBest按照题意模拟即可。codeC-TransportationExpenses考虑当\(x\)增大时,\(\min(x,a_i)=x\)的项会越来越少。换言之,当\(x\)足够大时,\(ans=\suma_i\),若此时\(ans>M\)则说明无论补贴多少,这时答案都是一定的......
  • AtCoder Beginner Contest 371(ABCDE)
    A个人直接硬解,讨论情况也并不复杂代码:#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=1e6+10;voidsolve(){chara,b,c;cin>>a>>b>>c;if(a=='<'){if(c=='<......
  • 11918 骰子|| 深搜 递归
    解决思路 深度优先搜索(DFS):使用DFS枚举所有可能的骰子点数组合。 剪枝:在DFS过程中,如果当前点数和已经超过 sum 或者剩余骰子无法达到 sum,则剪枝。 字典序输出:由于DFS的递归顺序,天然保证了字典序输出。#include<bits/stdc++.h>#definelllonglongus......
  • 111
    ......
  • 11915 玩猫猫 二分答案
    解决思路 二分查找:使用二分查找来确定每个成员分到的猫猫数量的最大值。 检查函数:定义一个检查函数 check(mid),判断在每个成员最多分到 mid 只猫猫的情况下,是否可以将所有猫猫分完  更新边界:根据检查函数的结果,更新二分查找的边界,直到找到最小的不满度。 #......
  • PKG系统安装包及IPSW固件:MacOS 11-14 正式版
    MacOS 14Sonoma,为提高生产力和创造力带来了全新的功能,有了更多使用小部件和令人惊叹的新屏幕保护程序进行个性化设置的方法,对Safari浏览器和视频会议进行了重大更新,以及优化的游戏体验——Mac体验比以往任何时候都更好。下载地址:点击下载支持机型2019年以及后续的iMa......