首页 > 其他分享 >CF EDU 139 略解

CF EDU 139 略解

时间:2024-09-28 17:01:29浏览次数:1  
标签:个数 CF 略解 之后 序列 139 末尾 指针

E

观察到 \(0\&(1,2,3)=0\),除此之外只剩下 \((1\&2=0)\)

然后我也不知道有什么用了。

这个暴力应该是非常好写的,直接统计 \(0/1/2/3\) 的个数即可。

不对啊,感觉这个暴力怎么写出来还需要链表呢。。。

不重要,但是我总感觉这个拆分之后的序列个数应该不会很大(?

草了,\(n\) 个 \(0\) 就破产了。

emmm,\(1\) 只有在末尾没有 \(1,3\) 的时候才能新建一个序列,\(2\) 同理,3只有在全是0的时候才会新建一个序列。

所以作为末尾,显然有了 \(0\) 那么这个序列便不会产生更多的贡献了,也就是说0只会单独成为一个长度为 \(1\) 的序列。

故我们只需要考虑 \(1,2,3\) 之间的关系。

显然 \(3\) 在有一个末尾 \(\in[1,2,3]\) 的情况之后,便不可能去新开序列。

观察到一旦出现了一个3的末尾,那么他在之后一定会变成离他最近的 \([1,2]\),后面和他相同的,再之后再变成3,再变成离他最近的 \([1,2].....\)

也就是说,\(3\) 一定都会出现在第一个序列里面。

并且每个\(3\) 一定会伴随着他之后第一个 \(i,a[i]\in{1,2}\) 出现在这个序列里面。

哦,也就是说在排除 \(0\) 的情况下,最多只有3个序列,一个是 \(3\) 和它后面的第一个 \([1,2]\) 和后面和这个 \([1,2]\) 相同的,剩下两个一个全是 \(1\) 一个全是 \(2\)

所以我刚刚那个拆分之后序列个数不会很大的猜想只要排除 \(0\) 就是对的。

那就简单了啊,我先把 \(0\) 删完,然后写三个双指针,分别代表有 \(1,2,3\) 个序列的最近的r在什么位置。

其实也不能直接删,太麻烦了,没必要,可以直接忽略掉他。

额,貌似第一个双指针没什么毛用,其实只需要后两个。

稍微注意一下第二个最近的 \(r=i+1\) 的时候,需要全部重新更新。

比如 \([1,2,3]\) 这种情况,\(i=1\) 时,第二个 \(r=2\) ,而 \(i++\) 之后 \(1\) 没了,可能你就不能直接用你的双指针动态维护的那些东西了。

CTM这样写第三个双指针他不是单调不减的我破防了。

我不管了,我要乱搞,我随便写些特判就行了。

倒着写双指针貌似是对的,但是我一点也不想改了。

好吧,在发现只会有最多三个序列之后其实可以DP,但是我不想改了。

大功告成。

\(\text{My Submisson}\)

标签:个数,CF,略解,之后,序列,139,末尾,指针
From: https://www.cnblogs.com/SFsaltyfish/p/18438150

相关文章

  • CF1874F Jellyfish and OEIS
    CF1874FJellyfishandOEIS第一次独立切*3500,写篇题解记录一下我们称\([l,r]\)为一个排列,当且仅当\([p_l,p_{l+1},\dots,p_r]\)为\([l,l+1,\dots,r]\)的一个排列。不妨固定\(l\),我们只需要考虑最小的\(r\)满足\([l,r]\)为一个排列。考虑每个\([l,r]\)所构成的区......
  • CF1919E
    给定长度为\(n\)的数列\(p\),求有多少个长度为\(n\)的数列\(a\)满足:\(\foralli\in[1,n],|a_i|=1\);其前缀和数组排序后恰为数列\(p\)。\(\sumn\leq5000\)。这个题真的抽象,还是先不管了。Conclusion用折线图观察操作。自定义统一操作生成最终答案。题外话:感......
  • ORA-16139
    TableofContents1.错误信息2.问题分析1.错误信息在将备库提升为主库的过程中,出现如下错误:SQL>alterdatabasecommittoswitchovertoprimarywithsessionshutdown;alterdatabasecommittoswitchovertoprimarywithsessionshutdown*ERRORatl......
  • CF套题3翻译(uoj)
    \(A\)题:给定两个\(01\)串,问\(A\)是否可以通过相邻两位的异或和或操作得到\(B\)串.异或:\(01/10→11,11→10/01\)或:\(10/01→11\)\(B\)题:题目大意:给定\(n\)个正整数,请将适当调整他们的顺序,使得两个相同的数之间的距离的最小值最大。注意距离定义为两个数之间的数的个数,......
  • MySQL 在创建和删除用户时出现的ERROR 1396 (HY000)错误
    MySQL作为一个开源且广泛使用的关系型数据库管理系统,经常被用于处理各种的数据操作。在MySQL中,用户管理是非常重要的一个方面。尽管创建和删除用户在MySQL中是非常容易的,但是有时候会遇到ERROR1396(HY000)的错误。这个错误通常会在以下情况下发生:创建用户出现ERROR1396(HY000......
  • CF套题4翻译(uoj转载)
    \(A\)题:CF1098A给你一棵树,树根为\(1\)号点。每个点\(i\)有一个非负整数权值\(a_i\),记点\(i\)到根的路径上经过的所有点(包括根和自身)的权值总和为\(s_i\)。现在擦去所有深度为偶数的点的\(s_i\),求\(\suma_i\)最小可能是多少,如果无解,输出\(-1\)。被擦去的\(s_i\)在输入文件中被......
  • CF1592F2-Alice and Recoloring 2-分析、二分图
    link:https://codeforces.com/contest/1592/problem/F2题意:给定一个\(n\)行\(m\)列的目标矩阵,矩阵元素只有W或B,并且你有一个初始矩阵,元素全为W。现在你可以矩阵实施以下操作:使用一块钱,选定一个包含\((1,1)\)的子矩阵,把矩阵中的元素全部反转(W变B,B变W)。使用......
  • CF1063E Lasers and Mirrors题解
    一道很好的手玩题,被薄纱了。首先判掉\(\foralli,p_i=i\)的情况(显然是\(n\))然后考虑按照\(p_i\)连边,先构造每一个环的方案。发现可以简单放置两面镜子使得\(i\)射到\(p_i\),而且只要从高到底构造,一定不会产生影响。但是每一个环的最后一个点很特殊,因为第1个点下面放置了让第1个......
  • 题解:CF437B The Child and Set
    CF437BTheChildandSet题解这题目就一个问题。啥是\(\operatorname{lowbit}\)?\(\operatorname{lowbit}(x)\)是指\(x\)的二进制表示中最低位的\(1\)所表示的值。例如\((14)_{10}=(1110)_2\),其中最低位的\(1\)在第二位,表示\((2)_{10}\),即\(\operatorname{lo......
  • Abp 使用app.UseStaticFiles配置静态文件中间件以达到创建虚拟路径
    若访问项目文件wwwroot以外的其他静态文件使用如下方式访问1.配置文件中配置路径(appsetting)"App":{"ServerRootAddress":"https://localhost:44301/","ClientRootAddress":"https://localhost:4200/","CorsOrigins":"......