首页 > 其他分享 >2023-7-10 #65 我守着虚构的幻想 那些我珍视的模样

2023-7-10 #65 我守着虚构的幻想 那些我珍视的模样

时间:2023-07-10 20:13:15浏览次数:59  
标签:10 frac 一个 复杂度 枚举 65 2023 ban sum

448 QOJ6669 Mapa

这谁想得到啊??????????????????

插出一个模 1e9+7 下的多项式,保存系数。

449 CF1456E XOR-ranges

感觉挺难的。

类似 406 HDU6358 Innocence,我们将每一段拆成 \(\log\) 个 trie 上的区间,每一个形如“固定前缀 \(S\),长为 \(l\) 的后缀任选”,并将选择 \([l,r]\) 内的数改为在这 \(\log\) 段区间内选择一个。

假设已经完成选择,考虑如何计算答案。从低位到高位扫描序列,假设扫到了第 \(k\) 位。若存在第 \(k\) 位已经确定的数,在对应位置劈开序列,得到的两段仍是形态一致的子问题。否则所有数第 \(k\) 位任选,贡献即“目前区间两端第 \(k\) 位是否相同”(其等价于在笛卡尔树上贪心)。

若没有完成选择,我们沿用上面的结构。记 \(f_{k,i,j}\) 表示考虑到第 \(k\) 位,目前区间是 \([i,j]\) 的答案,转移即:

  • 枚举一个位置分段,选择其恰好固定到第 \(k\) 位的一段区间。
  • 断言所有数第 \(k\) 位都任选,递归到 \(k+1\) 的问题,并统计对应的贡献。

对于任意区间,其分解出的长为 \(k\) 前缀至多 \(4\) 种,于是复杂度 \(O(n^3k)\),写成记忆化搜索形式比较方便。

450 P7722 [Ynoi2007] tmpq / CF1545F AquaMoon and Potatoes

感觉挺烂的。

首先把题意转换为 \(b_i=a_j=c_k\) 的三元组数量。

根号分治,小的数每次修改后可以暴力 dp,而对前缀和的影响可以使用 \(O(1)-O(\sqrt n)\) 的分块统计。

对于每个大的数单独离线扫一遍序列,问题形如单点修改(总共只有 \(O(n)\) 次),维护前缀信息和,同样地使用 \(O(\sqrt n)-O(1)\) 分块维护即可。

不算难写,复杂度 \(O(n\sqrt n)\)。

451 牛客多校2021 Day3 D Count

枚举被 ban 掉的子集,枚举行列是否被 ban,枚举两条对角线是否被 ban 进行容斥,那么方案数就是剩余的点数选 \(m\) 减钦定掉的点数。

剩余的点数事实上可以表示成没有被 ban 的行数量乘列数量减去一个 \(O(n)\) 的值(修正对角线的贡献),于是我们 dp 行列是否被 ban 做一个背包状物即可,注意 dp 顺序应该是每次剥掉正方形的最外层一圈。

复杂度 \(O(2^kn^4)\)。

452 牛客多校2021 Day3 G Yu Ling(Ling YueZheng) and Colorful Tree

纯 shaber 题。

注意到可以使用 bitset,只需维护一个点的祖先集合,权值 \(\leqslant\) 某值的结点集合,以及某个数的倍数集合。

第一部分直接存空间不太行,树上撒 \(O(w)\) 个点树分块,暴力跳散块改 bitset 空间就是线性了。

第二部分由于有权值相同的情况,不能直接分块,但维护一个分块的结构,根号重构就好了,调一调块长空间也是线性的。

第三部分套路地根号分治一下,倍数数量多就单独给权值开一个 bitset,调调块长空间应该是 \(O(nd(n))\) 的。

复杂度 \(O(nd(n)+\frac{n^2}w)\)。

453 uoj#659. 【ULR #2】Picks loves segment tree IX / AGC061E Increment or XOR

咕咕咕。

454 ARC119F AtCoder Express 3

不知道怎么到银牌的。

从前往后 dp,一个朴素的方法是直接记录最后一个数的类型,以及最后一个 A/B 到源点的最短路,这样是三次方的。

注意到若两维差距大于 \(2\),我们一定不用关心较大的一维(转移一定不优),不妨直接令其对另一维 \(+2\) chkmin。正确性很好说明,考察下一个这种类型字母即可。

复杂度 \(O(n^2)\)。

455 ARC126F Affine Sort

很不错的题目,感觉不止铜牌难度。

令 \(g(c)\) 为固定 \(c\) 时 \(a,b\) 的对数,使用 O'Stolz 定理——

\[\lim_{k\rightarrow\infty}\frac{f(K)}{K^3}=\lim_{k\rightarrow\infty}\frac{g(K)}{K^3-(K-1)^3}=\frac 13\lim_{k\rightarrow\infty}\frac{g(K)}{K^2} \]

我们将 \(aX_i+b\bmod c\) 写成 \(\frac{aX_i}{c}+\frac bc\bmod 1\),当 \(c\rightarrow\infty\) 时 \(a,b\) 均可看作 \([0,1]\) 内随机实数,于是问题转变为:

称实数对 \((a,b)\) 是好的当且仅当 \(\{aX_i+b\}\) 单增(\(\{x\}\) 是 \(x\) 的小数部分),求二维平面上所有好的实数对 \((a,b)\) 构成的区域的面积。

先考虑如何判定一个 \(a\) 有解,即依次遍历 \(aX_i\) 不会走完一个圆,可以写出,易知其充要性:

\[\sum_{i=1}^n\{(x_{i+1}-x_i)a\}=1 \]

若一个 \(a\) 有解,其 \(b\) 的限制也很好刻画——我们只需将原点通过 \(b\) 平移到 \([x_na,x_1a]\) 内。

现在考虑如何找到对应的 \(a\),注意到 \(\{ax\}\) 这个函数关于 \(a\) 是不超过 \(O(x)\) 段的分段一次函数,加起来也只会有 \(O(\sum x)\) 段,而且由于 \(\sum(x_{i+1}-x_i)=0\),每一段都是平的,这就很好处理了。

于是直接排序找到这样的段,对 \(b\) 积分即可,复杂度一个 \(\log\)。

456 U105261 子序列删除问题

关于 U105261 「子序列删除问题」的讨论

最小割模型是经典的,我们求出每个位置为结束/开头的 LIS 长度 \(f,g\),将所有可能在 LIS 中的数取出来,按 \(f_i\) 分层,相邻层之间可以转移的点连边,每个点内部拆点限流 \(1\),最小割即为答案。

我们将每一层按照下标排序,容易发现每个点的后继一定是一段区间(下标限制一段后缀,值限制一段前缀),且一层内的点从前往后区间端点不增。

我们断言,每次贪心地选择一条字典序最小的增广路,且不使用反向边,这样增广出的最大流同样最优。可以通过说明最大流路径不交叉(否则可以调整)来完成证明。

可以暴力模拟这一策略,每次遍历完一个点可以将其删去,因为若成功增广,其内部流量已经流满,否则这个点也无用,于是只需使用并查集找到区间内第一个未删去的点。

最小割的构造考虑一经典方法——从源点开始 dfs。不难发现上述的算法只会增广 \(O(n)\) 条边,我们将这些增广产生的反向边与原图的边放在一起做 dfs 即可,复杂度 \(O(n\log n)\)。

457 AGC056D Subset Sum Game

为啥 hzr 觉得简单啊。

不妨考虑 \(n\) 为奇数的情况,我们枚举 alice 选择的哪一个数并将其删去,一个策略是对剩余的数匹配,bob 取一个数后 alice 立即取其匹配。显然按照值排序相邻匹配最优,此时只需判断是否有奇数位置和加 \(a_i\) 与偶数位置和加 \(a_i\) 在 \([L,R]\) 内。不难证明其同时为下界,上界,于是可以做到 \(O(n)\)。

\(n\) 为偶数的情况是类似的,alice 选择一个数将其忽略并构造一组剩余数的匹配,判定方法与上面相同。此时若 bob 取匹配内的数可以递归到更小的子问题,若 bob 选了空出来的数,alice 可以随便选一个数,剩下的问题仍在我们的考虑之中,直接模拟可以做到平方。

更具体地,我们可以计算出空出来哪个数最优——我们将 \(a_i+\sum a-L-R\) 插入剩余序列,排序后匹配上的数即为最优解,于是可以做到线性。

证明:懒得写了,挂个链接

458 AGC060D Same Descent Set

为啥 zyf 觉得难啊。

\(2^{n-1}\) 枚举 descent 集合 \(S\),令 \(f(S)\) 为对应的排列数量,即对 \(f(S)^2\) 求和。

使用经典的容斥方法,枚举一个子集 \(T\) 表示我们强制 \(S-T\) 上升,\(T\) 集合内则任意,带 \((-1)^{|S|-|T|}\) 的容斥系数——

\[\sum_S(\sum_{T\subseteq S}(-1)^{|S|-|T|}f(T))^2 \]

转而枚举 \(T_1,T_2\),那么合法的 \(S\) 数量为 \(2^{n-1-|T_1\cup T_2|}\),并集不好刻画,不妨写出 \(2^{n-1-|T_1|-|T_2|+|T_1\cap T_2|}\),枚举其交 \(P\),写出容斥系数时你会发现系数为 \(1\),因为这就是 \(2^{|T_1\cap T_2|}\) 的组合意义,此时问题得到解决。

梳理一下流程:构造一段的 GF \(-\frac 12e^x\),使用 Sequence 构造得到拼接 \(T-P\) 内的 descent 后一段的 GF,将系数平方后再使用 Sequence 构造拼接 \(P\) 内 descent 即可。

只需多项式求逆,复杂度 \(O(n\log n)\)。

标签:10,frac,一个,复杂度,枚举,65,2023,ban,sum
From: https://www.cnblogs.com/xiaoziyao/p/17529759.html

相关文章

  • 暑假周记(7.10)
    今天周一哇去,给两个年纪小孩上英语,还有一个小升初教语数英好累啊,哇,那些乡村支教的老师们是怎么做到的,我这个还是有着不错的工资的,我的上课条件也远比他们优越,感念这一帮伟大的老师,今天忙了一天就看了十页大道至简,倒是第一次玩游戏用上Java了----我的世界Java版本,Java真牛,一定得把......
  • 20230710巴蜀暑期集训测试总结
    T1打个不太暴的暴力但是爆了。只对了subtask1,不清楚发生了什么。先建出Kruscal重构树,对每个询问二分答案,判断就用暴力启发式合并T2打了一个\(20pts\)dp。第一步没有想到,每怎么见过这种题。将问题转化为满足\(\foralli,x_i\leA_i,x_i\leB_i\)的序列\(x\)个数。枚......
  • 7-10打卡
    Java方法重载classMathUtils{publicstaticintadd(inta,intb){returna+b;}publicstaticdoubleadd(doublea,doubleb){returna+b;}publicstaticintadd(inta,intb,intc){returna+b+c;......
  • 7.10
    #include<iostream>#include<cmath>usingnamespacestd;typedeflonglongll;intstart,len;//序列开始因子和连续因子个数intmain(){cin.tie(0);llN;cin>>N;intstart=0,len=0;for(inti=2;i<=sqrt(N);i++)......
  • 2023-07-10:Kafka如何做到消息不丢失?
    2023-07-10:Kafka如何做到消息不丢失?答案2023-07-10:Kafka采用多种机制来确保消息的不丢失,其中包括副本机制、ISR(In-SyncReplicas)机制以及ACK机制等。1.副本机制Kafka通过副本机制来确保消息不会丢失。在Kafka中,每个分区都可以配置多个副本,每个副本保存分区的完整拷贝。当一个副本宕......
  • 每日总结2023年7月10日
    今日学习:SQL注入:是利用某些系统没有对用户输入的数据进行充分的检查,而在用户输入的数据中注入非法的SQL语句段或命令,恶意攻击数据库。例子如下:计算机网络:七层模型:物理层(功能:传输二进制,设备:中继器、集线器)、数据链路层(功能:传输以帧为单位的信息,设备:网桥、交换机、网卡,协议:PPTP、L......
  • C++程序设计综合实验任选题目[2023-07-10]
    C++程序设计综合实验任选题目[2023-07-10]程序设计综合实验任选题目简单题目题目1模拟ATM机存取款管理系统设计1、问题描述模拟银行的自动取款及使用过程中的界面和用户交互过程。实现查询银行卡余额、取款、修改密码、退出系统等功能。2、功能要求(1)卡号、密码输入最多......
  • CVPR 2023 | 南洋理工、商汤提出E3DGE:2D图片秒出3D形象
    前言 在CVPR2023上,南洋理工大学-商汤科技联合实验室S-Lab的研究者提出的基于Encoder的快速3DGANInversion方法,针对现有3DGANinversion方法无法兼顾重建速度、重建质量和编辑质量的问题,提出一种自监督3DGANinversion训练框架。同时,通过构建全局-局部的多尺度结构以及2D-3D......
  • 2023-07-10:Kafka如何做到消息不丢失?
    2023-07-10:Kafka如何做到消息不丢失?答案2023-07-10:Kafka采用多种机制来确保消息的不丢失,其中包括副本机制、ISR(In-SyncReplicas)机制以及ACK机制等。1.副本机制Kafka通过副本机制来确保消息不会丢失。在Kafka中,每个分区都可以配置多个副本,每个副本保存分区的完整拷贝。当一个......
  • NOIP2013-2023题解
    本文章主要是为了不想卷题的时候不是特别颓废而准备本文章是为了总结NOIP最近的题目(为了今年NOIP做准备),目前还没写完,尽量做的全面一些。2013积木大赛给定一个长度为\(n\)的序列\(h_i\),初始有一个全为\(0\)的序列,每次操作可以任意选择\(L,R\),使得\([L,R]\)这段区......