首页 > 其他分享 >积云不解下弦月

积云不解下弦月

时间:2024-03-29 16:14:48浏览次数:10  
标签:geq frac 不解 集合 cdots 积云 一定 我们 下弦月

AGC062

[AGC062A]Right Side Character

咋这么难?
不难打标看出结论:当且仅当一个前缀是 \(A\) ,一个非空后缀是 \(B\) 时答案是 \(B\) 。

[AGC062B] Split and Insert

VP 时的思路。

首先考虑倒着,每次选择一个子序列放到最后,方便起见我们把操作序列也 reverse 一下。

这样,我们发现,如果设 \(S_i\) 为覆盖了 \(i\) 的操作集合(我们把 \(S_i\) 默认为降序排列),那么最终 \(S_i\) 相同的一定是在一起的,这样会形成若干个区间,并且这些区间的 \(S_i\) 按照字典序从小到达排列。

此时唯一的限制就是:每个 \(S_i\) 相同的区间内的数在 \(p\) 中的位置递增。

设 \(M\) 为不同的 \(S_i\) 个数,考虑 dp,设 \(f_{i,j}\) 表示考虑了前 \(i\) 个位置,当前位置的操作集合是 按字典序排序的 第 \(j\) 个的最小代价,转移时可以维护前缀 \(\min\) 做到 \(O(nM)\)。

但是我们发现 \(M=2^k\) 根本开不下,考虑优化一下。

注意到最终用到的只有 \(O(n)\) 个区间,那么我们考虑贪心的保留权值和最小的 \(n\) 个 \(S_i\),这个可以用类似超级钢琴的思路求出来。

然后叫了一下发现 WA 了,再想想发现有可能一段长度很长的区间,我们想要让他取到尽可能小的权值和,但是有字典序的限制所以有可能取不到这个数,此时应该在前面 “垫” 一些段,故不一定是最小的 \(n\) 个有用。

此时我们充分发挥人类智慧,保留最小的 \(pn\) 个 \(S_i\),实测 \(p=3\) 能过。

复杂度 \(O(n^2m+nm)\) ,跑的飞快。

虽然是个假做法但是复杂度比题解要优

[AGC062C] Mex of Subset Sum

从小到大排序,设前缀何为 \(S_i\),所有 \(x<S_i\) 且不能被前 \(i\) 个数表示出来的数的集合为 \(E_i\) 。

考虑从 \(E_{i-1}\) 推到 \(E_i\) :

首先,一个数 \(x\) 不能被表示出来,当且仅当 \(x\) 不能被前 \(i-1\) 个数表示出来,且 \(x-A_i\) 不能被前 \(i-1\) 个数表示出来,这里的不能被表示有三种:\(<0,\in E_{i-1},>S_{i-1}\) 。

我们简单讨论一下:

  • \(S_{i-1}<A_i\) ,此时 \(S_{i-1}\) 内的数和 \((S_{i-1,A_i})\) 内的数都不能被表示,并且因为 \(A_i\) 不降,之后也一定不能被表示,且一定不会有更小的不能被表示的数,所以这些数一定在答案里,如果他们个数 \(\geq K\) 就直接输出。否则,就把 \(x-A_i\) 必须 \(\in E_{i-1}\),把这些数加进来就好了,可以发现与 \(E_{i-1}\) 相比,\(E_i\) 大小最多多 \(K-1\) 。
  • \(S_{i-1}\geq A_i\),那么 \(E_{i-1}\) 中 \(<A_i\) 的部分一定也是一定在答案里的,和上面一样处理。否则对于 \((A_i,S_{i-1})\) 中的数,只有 \(x\in E_{i-1},x-A_i\in E_{i-1}\) 才行,对于 \((S_{i-1},S_i)\) 中的数也要求 \(x-A_i\in E_{i-1}\),可以发现加进来的数大小也不超过 \(E_{i-1}\) 。

综上 \(E_i\) 的大小不会超过 \(Ki\),暴力做复杂度就是对的了。

[AGC062D] Walk Around Neighborhood

神秘思维题,感觉有点像是二维的摩尔投票。

我们先从小到大排序,如果前 \(n-1\) 个数的和 \(<a_n\) 一定无解,因为 \(a_n\) 不管咋走都会超。

否则,一定有解,并且答案一定在 \([\frac{a_n}{2},a_n]\) 中,这是因为:上界 \(a_n\) 的构造很简单,我们先走到 \(a_n\) 所在的正方形上,然后剩下的步长一定与这个正方形都有交,因此我们能一直保持在边界上,最后用 \(a_n\) 走回去就好了。下界 \(\frac{a_n}{2}\) 也是因为小于这个,\(a_n\) 不管咋走都会出去。

那么我们枚举答案 \(r\in [\frac{a_n}{2},a_n]\) ,注意到我们走的过程形如:

  • 先用若干步数走到 \(r\) 的正方形上
  • 中间一些步数在正方形边界上跳
  • 再用一些步数走回去

并且因为 \(r\in [\frac{a_n}{2},a_n]\) 所以只要能走到边界上就一定能保持在边界上,所以我们只需要找两个集合,满足一个集合能走过去,一个集合能走回来就行了。

判断一个集合 \(S\) 能否走到 \(r\) 的正方形边界:

  • 若 \(S\) 中小于 \(r\) 的数的和 \(\geq r\),那么显然一定能走到 \(r\) 。
  • 否则,我们一定要用 \(\geq r\) 的数,因为用了它之后一定要么走出去要么走到边界上,所以用一个就够了,记为 \(x\)。考虑什么时候不合法,发现若 \(x\) 很大,\(r\) 很小,我们就很容易跳出去,故 \(x\) 一定保留最小的一个,并且此时可以发现跳 \(x\) 的位置越偏越不容易跳出去,所以我们一定把 \(<r\) 的数沿着同一个方向走,所以记这些数的和为 \(s\),那么合法的充要条件是 \(s\geq x-r\) 。

因为我们要分成两个集合,并且可以发现如果有 \(\geq r\) 的数一定用比不用好,因为 \(r\in [\frac{a_n}{2},a_n],x-r\leq r\) 更容易满足,并且因为 \(r\leq a_n\),所以一定至少有一个 \(x\) 可以用,如果还有就再保留次小的,否则就只能选择第一种。

现在我们要找两个集合,第一个大小 \(\geq A\),第二个 \(\geq B\) ,那么一定每个数都被选进某一个了。

bitset 维护可能集合大小,每次 _Find_next 找到 \(\geq A\) 的最小的子集,然后判断剩下的数是不是 \(\geq B\) 就行了。

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

[AGC062F] Preserve Distinct

这是人做的题?

首先,对于第 \(i\) 堆,求出它第一张牌对应的另一张所在的堆,记为 \(p_i\) 。

从 \(i\to p_i\) 连边,形成了一个基环树森林。

首先,环外的点,每次删叶子,显然可以删空,所以现在只有一堆环。

然后,不同连通块是独立的,因为我们可以一个一个删,删的过程中别的显然不影响,如果删完了最好,没删完也说明此时这个环的堆顶的牌一定都只在这个环出现,对别的没有影响。

因此我们可以一个一个环处理,我们按照环的顺序记为 \(1,2,3\cdots k\) ,第 \(i\) 堆堆顶的牌是 \(a_i\) 。

那么这些牌一定形如:

  • \(1:a_1\cdots a_{k}\cdots\)
  • \(2:a_2\cdots a_2\cdots\)
  • \(\cdots\)
  • \(k:a_k\cdots a_{k-1}\cdots\)

先讨论一些简单的情况,看能不能得到一些性质:

标签:geq,frac,不解,集合,cdots,积云,一定,我们,下弦月
From: https://www.cnblogs.com/jesoyizexry/p/18104038

相关文章

  • Linux系列之不解压直接查看gzip压缩日志
    Linux系列之不解压直接查看gzip压缩日志文件在Linux服务器上,日志文件经常会用gzip格式进行压缩,以节省磁盘,对于这种压缩文件,需要解压?然后再用cat、grep这些命令进行查看?其实不需要,Linux系统提供了zgrep、zcat这些命令。可以支持不解压gzip文件,直接查看常用命令zcat:cat查看压缩文件z......
  • blender制作体积云烟雾的几种方法
    blender制作体积云烟雾的几种方法一.利用着色器节点(Cycles渲染器)1.新建一个立方体,材质节点如下。(根据情况调整合适的参数)2.打一个面光就完成了。渲染效果图二.利用修改器(Cycles渲染器)1.创建多个融球堆叠形成不规则体2.选中所有融球ctrl+J合并所有融球3.物体-转换-......
  • 积云飘过,但留烟火
    Day-N在一个带着凉意的下雨天来到了成都。Day1上午\(T1\)是简单题,一个小时写完也拍上了。然后\(T3\)的容斥状压,此时也发现这题和20年的命运好像非常像。链的情况是简单的,推广到树上似乎就是变成虚树的限制,想了一下没什么问题。写了个三方的\(DP\),状态还就和命运一模......
  • 实时体积云:Real time volumetric cloudscapes
    什么是体积云?原来的云都是平面的,在天空盒上方放一张移动的图片。。。而体积云则是有体积的,有高低的层次感。。这么理解不知道对不对?参考1:https://www.bilibili.com/read/cv18575367参考2:https://zhuanlan.zhihu.com/p/485899538参考3:https://www.bilibili.com/video/BV1iA411......
  • GIS融合之路(五)给CesiumJS加上体积云(Volumetric Cloud)和高度雾(Height Fog)
    同样在这篇文章开始前重申一下,山海鲸并没有使用ThreeJS引擎。但由于ThreeJS引擎使用广泛,下文中直接用ThreeJS同CesiumJS的整合方案代替山海鲸中3D引擎和CesiumJS整合。系列传送门:同样在这篇文章开始前重申一下,山海鲸并没有使用ThreeJS引擎。但由于ThreeJS引擎使用广泛,下文中直接......
  • 使用zip命令删除压缩包中的某个文件?(不解压),向压缩包增加文件?
    1、删除压缩包中的文件 如何在不解压压缩包的情况下,删除压缩包中的某个文件? 下面通过一个例子,说明整个过程... 现在,在环境中存在一个压缩包(war)[root@nccztsjb-node-01tmp0]#ls-ltrtotal421448-rw-r--r--1rootroot431560771Mar3113:50ROOT.war[root@nc......
  • 雪地脚印 & 体积云
    【博物纳新】专栏是UWA旨在为开发者推荐新颖、易用、有趣的开源项目,帮助大家在项目研发之余发现世界上的热门项目、前沿技术或者令人惊叹的视觉效果,并探索将其应用到自己项......