首页 > 其他分享 >11.02

11.02

时间:2024-11-02 21:43:58浏览次数:1  
标签:字符 pmod 线段 11.02 端点 mex mathrm

A.故障机器人

天生具备大常熟,劳资就爱写递归用vector写唐怎么你了,复杂度对了凭什么不让过,时间卡这么紧有意思吗?

贡献可以拆为识别为 ↑ 的字符与识别为 → 的字符间的贡献,而字符间的贡献又互相独立,所以可以先预处理 \(val[x][y]\) 代表字符 \(x\) 识别为 ↑,字符 \(y\) 识别为 → 的这两个字符间的贡献。然后用这个预处理出 \(f[x][mask]\) 代表 \(x\) 识别为 ↑,所有字符识别状态为 \(mask\) 时 \(x\) 的贡献,最后枚举所有状态求答案即可,时间复杂度 \(O(n+2^m)m\)。

B.反二维偏序

真的想不到啊,每次都被这种题区分。

将二元组 \((b_i,a_i)\) 转化为线段 \([b_i+1,a_i]\),转化完后两个二元组为反二维偏序关系其实就是两条线段有交点。
如果有交的线段进行连边,那么区间合法等价于一个连通块必须是一个完全图。

考虑对于每个左端点 \(l\),求出它能向右扩展的最右端点 \(r\),满足 \([l,r]\) 为合法区间。
由于这个东西有单调性,所以可以双指针。加入一条线段 \([l_i,r_i]\) 时,找到这条线段所处连通块中最左边线段的左端点 \(L\) 和最右端点 \(R\),由于是完全图,也就是说这条线段应与 \([L,R]\) 间的线段全都有交,于是判断一下 \([l,r]\) 中被覆盖次数最多的位置的最多次数与 \([L,R]\) 之间的线段数是否相同,若不同则非法。

以上操作均可以用线段树简单维护。

C.根本不是人

赛时想到了复杂度为 \(n^3m\) 的优秀暴力,但是

一分都多拿不了果断放弃,结果广二老哥 \(O(\frac{n^3m}{w})\) 直接过了。
正解不会,说一下暴力。

枚举根,设 \(f[i][j]\) 代表树 \(a\) 的 \(i\) 子树能否匹配树 \(b\) 的 \(j\) 子树,用匈牙利跑一下二分图最大匹配看是不是完美匹配即可,然后用 \(\text{bitset}\) 优化一下匈牙利,总时间复杂度 \(O(\frac{n^3m}{w})\)。

D.DS?代数!

从左往右枚举右端点 \(r\),对于每个左端点 \(l\) 维护 \(\mathrm{mex}(a_{l\dots r})\) 记为 \(\mathrm{mex}(l,r)\),显然这个是随着 \(l\) 递减而单调不减的。我们当前加入的 \(a_r\) 只会影响到一段区间 \([l',r']\),满足 \(\forall l\in[l',r'],\mathrm{mex}(l,r)=a_r\),而每次满足 \(\mathrm{mex}\) 相同的一个连续段都会对对应的 \(\mathrm{mex}\) 的答案造成贡献,题解说可以对每个值域维护一条扫描线,可持久化线段树维护扫描线即可。

但是不太懂咋实现啊,现在只会开值域棵历史和线段树给他可持久化,抽象。

abc378_f

一个链能造成贡献当且仅当链的两头的点度数为 \(2\),其余点的度数都为 \(3\),只有这两种点是有用的。于是可以用并查集把所有度数为 \(3\) 的点放入一个连通块,对于每个连通块求出与之相邻的度数为 \(2\) 的点的数量,记为 \(cnt_i\),最终我们的答案为 \(\sum\limits_{cnt_i\ge2}\binom{cnt_i}{2}\)。

abc378_e

记 \(s\) 为前缀和数组,那么我们要求的为:

\[ \sum_{1 \leq l \leq r \leq N} \left( \left(s_r-s_{l-1}\right) \mathbin{\mathrm{mod}} M \right) \]

首先将所有 \(s_i\) 对 \(m\) 进行取模,对于 \(s_i\) 它对答案的贡献为 \((2i-n)s_i\),那么最终我们的答案一部分为为 \(\sum (2i-n)s_i\)。
之所以说是一部分是因为 \((s_r-s_{l-1})\pmod m = s_r\pmod m-s_{l-1}\pmod m\) 当且仅当 \(s_r\pmod m\ge s_{l-1}\pmod m\),若 \(s_r\pmod m<s_{l-1}\pmod m\) 那么我们应加上 \(M\),设 \(f_i\) 代表 \(\sum\limits_{j=1}^ {i-1}[s_j>s_i]\) ,我们的答案最后要加上 \((\sum f_i)\times M\)。

标签:字符,pmod,线段,11.02,端点,mex,mathrm
From: https://www.cnblogs.com/ZepX-D/p/18522386

相关文章

  • CW 11.02 模拟赛 FSYo T2
    算法看到交换,这里有一个套路:确定最终的形态后,交换次数即为逆序对个数我们直接设\(f_{i,j,k,0/1/2}\)表示\(3\)种颜色填到哪里了,最后一个是什么颜色,逆序对数最少是多少转移分最后一个是什么颜色讨论关于\(O(1)\)求逆序对的方法:if(i==0&&a)f[a][b][......
  • CW 11.02 模拟赛 FSYo T1
    题面自出题挂个pdf题面下载算法暴力可能的答案只有\(O(n^2)\)个,考虑每个答案\(\rm{check}\)是\(O(n\logn)\)的总时间复杂度\(O(n^3\logn)\)/*O(answer*n*logn),即O(n^3logn)的算法,预期60pts*//*对于每一种可能的答案,首先对于每一个点,计算......
  • 2024.11.02模拟赛
    挂了至少30分!!不——开——心——钢哥说,大家要休息好,于是模拟赛晚点,变成了3小时3道题。T1打的正解(但没调出来版),T2T3打的暴力(但全挂了版),预计总分120+,但实际总分80。小小总结一下:昨晚多睡了一小时,今天思路确实感觉更清晰了(但也有可能是因为题目不难……)。但今天时间没分配......
  • 11.02日
    今天的课程安排相当紧凑,从UML统一建模语言开始,我对软件开发的蓝图有了更深的理解。这些图形化的表示方法让抽象的概念变得直观,我开始构想自己设计一个小型项目的框架。乒乓球课给了我一次释放压力的机会。球拍与小球的每一次碰撞,都让我暂时忘记了学业的繁重。我想象自己能用同......
  • 每日总结11.02
    今天上课听老师和同学讲了业务流程图,并自己绘制了,然后的时间做了人机交互的实验和一些软考题。 ......
  • 每日总结11.02
    学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。  Client:package实验7;publicclassClient{    publicstaticvoidmain(Stringa[]){        StudentIDstu1,stu2;        Stringid1,id2;        System.out.pr......
  • DTOJ 2022.11.02 图论专题
    题单P1117无序字母对P5240「NOIP2020」排水系统P4042「NOIP2018」旅行P5169「CSP-S2020」函数调用P4563「NOIP2017」逛公园题解A题面:给定\(n\)个各不相同的......
  • [2022.11.02] 模拟赛 第四题
    \(V\)\(Problem\)给定一棵\(n\)个点的树,初始每条边长度都为\(1\),每次操作你需要选择一条边并令其长度增加\(1\)。给定\(Q\)次询问,每次给定一个数\(K_i\),你必须恰......
  • 算法学习笔记11.02
    第一章基础算法(三)双指针算法可以是两个指针分别指向两个序列,也可以是两个指针指向一个序列,维护一段区间核心思想:将O(n2)优化到O(n)最长连续不重复子序列最长的不......
  • 【2022.11.02】机器学习名词记录
    学习来源均来自:https://www.bilibili.com/video/BV1Wv411h7kN当我们设定函数的时候,不一定是线性的情况下,可以将一个曲线图拆分成多个函数相加正如下图中的红色图,是由四......