首页 > 其他分享 >CF1902

CF1902

时间:2024-02-05 14:27:08浏览次数:27  
标签:前缀 LCP px py CF1902 sum

A

只要不是全 \(1\) 即可。

B

二分完成天数。

C

\(x\) 取差的 \(gcd\),\(a_{n+1}\) 见缝插针。

D

用一个 map 记录按原始操作序列,要走到 \((x,y)\) 的所有可能前缀。同时 \(px[i]\) 记录走了前 \(i\) 步到的 \(x\) 坐标,\(py[i]\) 记录走了前 \(i\) 步到的 \(y\) 坐标。

对于一次询问 \([l,r]\),先判断是否存在一个前缀的结尾在 \([1,l-1]\) 或 \([r,n]\)。(注意:这里是 \([r,n]\) 不是 \([r+1,n]\))如果存在,直接 Yes

否则,判断原序列能否在 \([l,r]\) 中走到 \((px[l-1]+(px[r]-x),py[l-1]+(py[r]-y))\)。如果能,就 Yes;否则 No

E

记 \(s\) 的翻转为 \(s'\)。

\(C(a,b)=|a|+|B|-2\times LCP(a',b)\),\(LCP\) 是最长公共前缀。

则答案要求计算 \(2n\sum |s_i|-2\sum\sum LCP(s_i',s_j).\)

前半部分简单,考虑用 Trie 算后半部分。两个字符串的 \(LCP\),就是它们在 Trie 上的路径相交的长度 \(-1\)。

标签:前缀,LCP,px,py,CF1902,sum
From: https://www.cnblogs.com/FLY-lai/p/18007872

相关文章

  • [CF1902E] Collapsing Strings
    题目链接考虑拆贡献。显然答案可以拆成对于所有\(s_i\)的每一个后缀的反串,作为前缀在所有串中的出现次数的加和。这个东西字典树维护一下就行了。不知道是谁考场上写哈希赛后被人对着模数卡掉了点击查看代码#include<bits/stdc++.h>#defineFL(i,a,b)for(inti=(a......
  • CF1902D Robot Queries 题解
    题意:有一个二维平面直角坐标系,给定一串向某个方向移动\(1\)个单位的操作。有\(q\)个询问,对于每个询问给定\(x,y,l,r\),问如果倒着做\(l\)到\(r\)这段区间中的操作,是否会经过\((x,y)\)。ds题。先预处理出\(sx_i,sy_i\)表示执行完操作\(i\)后的位置,如果在\([l,r]\)......
  • [CF1902] Educational Codeforces Round 159 A~E 题解
    [CF1902]EducationalCodeforcesRound159A~E题解A.BinaryImbalance很快观察到如果有不同的相邻元素,那么一定有解,意味着如果全是1无解,其他有解B.GettingPoints题面很长,可以发现,最好的偷懒方式一定是把所有的课都拖到最后几天上(真实),可以简单调整证明这样是不劣的,最后......
  • CF1902 D Robot Queries 题解
    LinkCF1902DRobotQueriesQuestionRobot初始在\((0,0)\),有一个字符串\(s\),表示运行列表\(U\):y+1\(D\):y-1\(L\):x-1\(R\):x+1之后有\(Q\)次询问,有\(L,R,x,y\),问把运行序列的\([L,R]\)反转,Robot是否经过了点\((x,y)\)Solution显然,对于一个区间\([L,R]\)......
  • CF1902 C Insert and Equalize 题解
    LinkCF1902CInsertandEqualizeQuestion有一个\(n\)个元素的数组\(a\),每个元素都不一样现在我们需要在\(a\)中添加一个数字\(a_{n+1}\),和之前的元素都不一样然后选择一个数\(x\),可以在一个元素上加\(x\),为操作一次,(每次加的数都是\(x\))求,操作的最少次数Solution......
  • CF1902 A Binary Imbalance 题解
    LinkCF1902ABinaryImbalanceQuestion给出一个01串,可以在任意一个位置\(i\)插入一个字符,如果\(a_i\nea_{i+1}\)插入的字符为\(0\)否则插入的字符为\(1\)问,是否可以通过任意次操作使得串中\(0\)的数量比\(1\)多Solution如果一个串都为\(0\)肯定符合都......
  • CF1902 B Getting Points 题解
    LinkCF1902BGettingPointsQuestionMonocarp的一个学期有\(n\)天,需要修\(P\)个学分,完成一节课程加\(l\)个学费,完成一个任务加\(t\)个学分Monocarp一天可以完成一节课+两个任务任务每周分配一个,也就是day1,day8,day15...问,在可以修满学分的情况下,Monocarp最多休......