首页 > 其他分享 >#6 2023.11.26

#6 2023.11.26

时间:2023-12-01 15:58:38浏览次数:47  
标签:... 26 2023.11 mid 贡献 枚举 区间 回文

395. arc140d One to One

原图是基环树森林。先把已知的边连上,会变成若干个基环树和若干个内向树。我们对环的期望数量计数。

对于基环树,贡献显然为 1。

对于内向树,我们枚举大小的有序序列 \(v_1 ,.. ,v_k\),贡献是 \({1 \over k}\prod {v_i \over n}\)。

分治 NTT 算即可。

396. arc140e Not Equal Rectangle

对于质数 \(B\),可以构造大小为 \((B \times B) \times (B \times B)\) 的矩阵。

\(a_{i,j} = (i + j + (i/B)\times(j/B)) \bmod B\)。

不知道为啥是对的,反正是对的。

397. arc139c One Three Nine

398. arc139e Wazir

399. uoj818 【NOI2023】贸易

400. uoj819 【NOI2023】字符串

记 \(s_i\) 是从 \(i\) 开始的后缀,\(p_i\) 是以 \(i\) 结尾的后缀。

先把答案加上所有 \(j \in [1,l],s_i < p_{i+2j-1}\)。

考虑有什么东西多算了,发现是 \(s_i < p_{i+2j-1}\) 且 \([i,i+2j-1]\) 是回文串。这个条件等价于 \([i,i+2j-1]\) 是回文串且 \(s_{i+2j} < p_{i-1}\)。因为是回文串,假设 \([i,i+2j-1]\) 可以扩展到 \([x,y]\),条件等价于 \(s_{y+1} < p_{x-1}\)。枚举 \([mid,mid+1]\) 作为回文串中心,设 \([mid,mid+1]\) 可以扩展到 \([x,y]\),则会对 \(i \in [x,mid],i+j = 2mid+1\) 的串产生贡献。扫描线即可。

401. uoj820 【NOI2023】合并书本

答案是若干磨损值加上每本书的贡献系数乘上每本书的权值。所以只需要求出贡献系数集合和对应的磨损值。

考虑把操作树分层,每个点尽量往深了塞,这样磨损值。枚举新分裂的儿子数量,发现新的磨损值只跟原磨损值和当前点数有关,所以不用管当前层数。而新的贡献系数状态可以贪心求出。同时注意到每一层分裂的点数一定单调不降。对于贡献系数集合 \(S\),设磨损值为 \(v\),上一次分裂了 \(m\) 个点。则 \((v_1,m_1),(v_2,m_2)\) 状态可以合并为 \((min(v_1,v_2),min(m_1,m_2))\)。

对太离谱的磨损值进行剪枝,进行爆搜发现 \(n = 100\) 时只有 \(< 2000\) 个状态。

402. uoj817 【NOI2023】深搜

403. uoj800 【统一省选2023】城市建造

CNOI 滚出中国!

404. uoj616 【JOISC2021】古老的机器

你 LOJ 咕了 /tx。

考虑最优策略怎么做。找到第一个 \(x\),然后找到这个 \(x\) 后面的第一个 \(z\)。把他们之间的数倒序删空,然后把 \(z\) 删了。注意到相邻 \(z\) 没用,所以这里找的实际上是第一个 \(z\) 连续段的最后一个 \(z\)。

于是把 \(x\) 和若干 \(z\) 看作关键位置,只需要传关键位置就行了,并且至多只有两个关键位置相邻。可以使用分段+fib。

405. loj3495 「JOISC 2021 Day3」聚会 2

发现只需要计算偶数的答案。对于一对 \((u,v)\),他会给 \(\leq 2\min(size_u,size_v)\) 的答案贡献 \(dis(u,v) + 1\)。

当场点分治,然后扔进桶里,就是一个 \(\log\) 的。

406. loj3494 「JOISC 2021 Day3」保镖

考虑把时间那维也带上,移动就变成了斜线。发现斜线很不爽,不如旋转一下坐标轴。

现在就转化成二维网格往下往右走路,每条边有边权。

预处理出 \(dp_{i,j}\) 表示已经到了 \((i,j)\) 的点之后能获得的最大权值,可以随便预处理。

然后对于一个保镖,要么一直往右走,走到某一竖之后往下。要么一直往下走,走到某一横之后往右。暴力枚举即可。如果过不去的话就套个李超树之类的。

407. loj3498 「JOISC 2021 Day4」最差记者 4

大概就是 \(f_{u,i}\) 表示 \(u\) 子树里的点全都 \(\leq i\) 的最小代价。

然后是一个前缀 min,树上部分可以直接线段树合并。

环上就把若干个线段树拼起来,是一个区间 min。

408. xsy5294 汇聚(gathering)

考虑对于一个点 \(u\) ,子树内点集是 \(S_1,...,S_k\)。枚举 \(S_i\) 是区间 \([l,r]\) 的最后一个点,\(u\) 会对 \(l \leq S_i \leq r < S_{i+1}\) 的区间有贡献。特判 \(i =k\)。

使用线段树合并求出每一对贡献,总共有 \(O(n \log n)\) 对本质不同的贡献。

后面是个二维数点,用分块平衡一下即可。

409. xsy5288 01 SAM 点数和问题(01sam)

410. xsy5293 括号(brackets)

411. arc138d Differ by K bits

\(k\) 为偶数或者等于 \(n\) 显然无解。找出一组由 \(popcount = k\) 的元素构成的基,然后套格雷码。

412. arc138e Decreasing Subsequence

413. arc138f KD Tree

设 \(f(l,r,u,d)\) 表示坐标在这个区间的点能构成多少个区间。

我们只统计字典序最小的方案,定义字典序是把区间内坐标离散化之后, \(x_1 < y_1 < ... < x_i < y_i < x_{i+1} < y_{i+1}\)。

记 \(fx\) 和 \(f_y\) 辅助转移。枚举第一个操作,再容斥掉字典序更小的操作。

414. loj3001 「JOISC 2015 Day 3」AAQQZ

首先将答案与每个字符出现次数取 max。接下来只需要考虑由至少两种字符组成的回文串的贡献。

容易发现,排序的区间一定和回文区间有交。在答案区间左半侧有交的情况可以通过中心对称转化为在答案区间右半侧有交的情况。

记 [] 表示回文区间,() 表示排序区间,| 表示回文中点。

case 1 : [...|...(...]) 或 [...|...(...)...]

枚举回文中点 \(mid\),令 \([l,r]\) 是以 \(mid\) 为中心的最长回文串,则排序区间的左端点一定是 \(r+1\)。

找到以 \(l-1\) 结尾的极长单调不降段的开头 \(x\)。枚举排序区间右端点 \(i\),问题变为求 \([r+1,i]\) 的字符集与 \([x,l-1]\) 的字符集的匹配长度。

两个集合 \(S,T\) 的匹配可以这样定义:初始有变量 \(i=0\),匹配长度 \(len = 0\)。

  • 若 \(i > maxelement(S,T)\),匹配终止。

  • 若 \(cntS_i = cntT_i\),则 \(len \leftarrow len + cntS_i,i \leftarrow i+1\),匹配继续。

  • 若 \(cntS_i \neq cntT_i\),则 \(len \leftarrow len + min(cntS_i,cntT_i)\),匹配终止。

预处理出 \([x,l-1]\) 的 \(cntS\),枚举到 \(i\) 时,先让 \(cntT_{s_i} \leftarrow cntT_{s_i} + 1\)。若 \(cntT_{s_i} > cntS_{s_i}\),就把 \(S\) 集合里大于 \(s_i\) 的数都扔了。否则更新当前匹配长度。

这样就解决了 [...|...(...]) 的情况。对于 [...|...(...)...] 的情况,发现此时匹配长度等于 \(i - r\),那么再加上 \(lcp(pre_{l-1-(i-r)},suf_{i + 1})\) 的贡献即可。

case2 : [...(...|...]) 或 [...(...|...)...]

记回文串中心字符为 \(c\),回文串中心 \(c\) 连续段的左端点是 \(l\)。则排序区间的左端点一定是 \(l\)。找到以 \(l-1\) 结尾的极长单调不降段的开头 \(x\)。

枚举排序区间右端点 \(i\),显然 \([l,i]\) 中不能出现小于 \(c\) 的字符,则可以转化为求 \([l,i]\) 的字符集去掉所有 \(c\) 之后和 \([x,l-1]\) 的字符集的匹配长度。

注意到 \(c\) 一定是 \(l-1\) 右侧第一个小于 \(s_{l-1}\) 的字符,枚举 \(l-1\) 进行计算即可。

415. cf1534g A New Beginning

想找个几何题,怎么不是很几何 /ll。

注意到对于一个确定路径,最优秀的方案是作一条斜率 -1 的经过这个点的线,然后在交点执行操作。

然后大力 dp,发现可以 slope trick。

怎么又不是几何 /fn。

显然每个工厂的产出速率单调增。按照速率排序,然后是个单调队列。

417. cf611g New Year and Cake

双指针求出 $i $ 到哪个点超过了面积的一半,所以两边的系数是确定的。

双指针只需要移动一个端点,所以维护信息是容易的。

418. cf776f Sherlock's bet to Moriarty

史。

把有相邻边的连通块连边,发现是个树。就变成树上染颜色了,这个点分治随便做。

标签:...,26,2023.11,mid,贡献,枚举,区间,回文
From: https://www.cnblogs.com/ZHANG-SHENG-HAO/p/17869876.html

相关文章

  • k8s 安装kubevirt v0.59.0 (k3s v1.26.4)
    1.安装kubevirt-operator.yaml(可以直接指定VERSION=v0.59.0-alpha.2;可以直接先在浏览器访问github下载yaml)exportVERSION=$(curl-shttps://api.github.com/repos/kubevirt/kubevirt/releases|greptag_name|grep-v--'-rc'|sort-r|head-1|awk-F':'&#......
  • .NET周刊【11月第4期 2023-11-26】
    国内文章万字长文:从C#入门学会RabbitMQ消息队列编程https://www.cnblogs.com/whuanle/p/17837034.html如题,详细的介绍RabbitMQ以及C#的使用。CPFC#跨平台UI框架开源了https://www.cnblogs.com/dskin/p/17849896.html本文介绍了C#的跨平台UI框架CPF,它支持.NETStandard2.......
  • 2023.11.30 练习
    CF1887C首先容易想到区间加需转化为差分,字典序的比较呢就考虑二分哈希。二分第一个不一样的位置,这个位置也一定是差分数组第一个不一样的。把哈希如果放到线段树上,那么在线段树上二分即可。我们依次处理修改的时候,顺便处理当前的最小的字典序。我们这里如果采用主席树,那么会......
  • 2023.11.29——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.百度图像增强SDK明日计划:学习......
  • CF1626E
    problem我们可以考虑什么情况下这个点一定可以到黑点。\(c_i=1\)。\(c_{son}=1\)。儿子可以,并且儿子子树内有两个黑点请两个不必多说,看最后一个。假如说考虑他的儿子能到的情况的第一个选择的点,那么我们选择另外一个即可到达儿子,那么我们就可以到达黑点。然后......
  • 2023.11.29 日记 Take it easy
    很不想把文化课写到日记里。但今天有点烦了。考试考的内容是要通过刷题得知的,并非学习。我已经在别的平台抱怨过很多次当今教育现状了,无济于事是肯定的,反而会打消学习的积极性。由于训练原因欠了很多课,再加上两个学校的进度不同、考试时间不同,我的学习成果实在像是被虫蛀了一样......
  • 11.26-task5-条件
    条件if语句if(condition):后面为condition为trueelse:后面为false布尔表达式的使用:我们知道当布尔值为true是返回值为1,false时返回值为0他的返回值意思是:检查n是否为负数,若为负数n<0为true=1n>=0为false=0,+前面就为1*-n,+后就为0,为正数时逻辑相同ifelse推导式......
  • 「Log」做题记录 2023.11.27-
    \(2023.11.27-2023.12.3\)\(\color{black}{P6965}\)2-sat是显著的。对于无问号串,直接否定向自己连边即可,然后塞到Trie树里。Trie树上用子树、路径前缀优化建图即可。\(\color{blueviolet}{P4334}\)圆方树,点是显著的,割边转换为对应方点即可。\(\color{blueviolet}{CF855......
  • 《安富莱嵌入式周报》第326期:航空航天级CANopen协议栈,开源USB PD电源和功耗分析,开源Et
     更新一期视频教程:BSP视频教程第28期:CANopen协议栈专题,CANopen主从机组网实战,CAN词典工具使用方法以及吃透PDO玩法视频版:https://www.bilibili.com/video/BV1H84y1Q717/ 1、航空航天级CANopen协议栈https://gitlab.com/n7space/canopenhttps://canopen.space/#download lely-......
  • 2023.11.28 随笔 了却君
    无聊。又来犯点无病呻吟之病。今日语文考时,绞尽脑汁,未背出下阙三、四段。特此默之,温习。《破阵子·为陈同甫赋壮词以寄之》辛弃疾醉里挑灯看剑,梦回吹角连营。八百里分麾下炙,五十弦翻塞外声。沙场秋点兵。马作的卢飞快,弓如霹雳弦惊。了却君王天下事,赢得生前身后名。可怜白发......