首页 > 其他分享 >NOIP2024集训Day57 哈希

NOIP2024集训Day57 哈希

时间:2024-10-21 20:42:50浏览次数:7  
标签:值域 long 哈希 集训 NOIP2024 Day57

NOIP2024集训Day57 哈希


A. [CF213E] Two Permutations

考虑到都是排列,值域连续,于是 \(a\) 都加 \(x\) 之后相当于在值域上平移了一段,也是连续的。由于要进行比较,个很容易想到哈希。\(a\) 的哈希值很好维护,每次平移一位加上 \(\sum base^i\) 即可。

考虑如何快速取出 \(b\) 中在这段值域内的数的哈希值。

不妨设 \(id_i\) 表示数 \(i\) 在 \(b\) 中出现的位置。值域类似一个滑动窗口,当 \(i\) 进入的时候就在 \(id_i\) 插入 \(i\),删除同理,用线段树可以简单维护处哈希值。

然后注意一下,该开 ull 的变量就要开 ull,要么就写 #define int unsigned long long。本人因为这个调了 30 min。


标签:值域,long,哈希,集训,NOIP2024,Day57
From: https://www.cnblogs.com/Leirt/p/18490339

相关文章

  • [赛记] 多校A层冲刺NOIP2024模拟赛09 && 10
    排列最小生成树(pmst)50pts又是诈骗题,然后又不会。。。暴力很暴力,直接建个完全图跑Kruskal即可;正解考虑如果我们连接编号相邻的点,那么每个边的边权都小于$n$真能考虑到吗?;所以我们最终的最小生成树中的边边权都小于$n$;那么对于$|p_i-p_j|\times|i-j|<n$......
  • 多校A层冲刺NOIP2024模拟赛10
    因为有好多人没有好好打,所以我认为我垫底了。赛时rank2,T10pts,T2100pts,T30pts,T440pts,accoder上同分,rank9。T1因为没输出挂了5pts,T4爆搜挂了5pts,乐。update:T3没有启发式合并被卡成rank4了神:wang5是下一个zh0ukangyang岛屿唐氏的推柿子题。发现只有两种链,同色相连和......
  • 在 Git 中,获取提交的哈希值(commit hash)
    在Git中,获取提交的哈希值(commithash)的方法有多种。以下是一些常用的方法:1.使用gitlog命令你可以使用gitlog命令查看提交历史,其中包括每个提交的哈希值。gitlog这将输出类似以下的内容:commit8927698069e9c719f452d7a71faac23ef25d27ab(HEAD->main)Auth......
  • 算法专题九: 哈希表与字符串
    目录哈希表1.两数之和2.判断是否为字符重拍排3.是否存在重复元素4.存在重复元素Ⅱ5.字母异位词分组字符串1.最长公共前缀2.最长回文子串3.二进制求和4.字符串相乘哈希表1.两数之和固定一个数,找前面有没有target-x这个数,使用哈希表,每次查找之后......
  • 【题解】Solution Set - NOIP2024集训Day57 字符串
    【题解】SolutionSet-NOIP2024集训Day57字符串https://www.becoder.com.cn/contest/5653「CF213E」TwoPermutations「CF961F」k-substrings「CF580E」KefaandWatch「CF504E」MishaandLCPonTree......
  • CSP2024 前集训:多校A层冲刺NOIP2024模拟赛08
    前言先痛骂没良心出题人,T1\(n\sqrtn\)多大你刚好给多大,一点不多给,T2才是签到题,因为放了T2位置打了暴力就去想T3了,我是唐氏,谁让你T1、T2swap的?T3实则三道题。但是还是感觉T1更简单啊,\(5e4\)搁哪儿摆着呢一眼\(O(n\sqrtn)\),甚至空间也是这么多,太明显了。挂分挂......
  • 多校A层冲刺NOIP2024模拟赛09
    多校A层冲刺NOIP2024模拟赛09考试唐完了,T2、T4都挂了100分,人麻了。排列最小生成树给定一个\(1,2,\dots,n\)的排列\(p_1,p_2,\dots,p_n\)。构造一个\(n\)个点的完全无向图,节点编号分别是\(1,2,\dots,n\)。节点i和节点j之间的边边权为\(|pi−pj|×|i......
  • 『模拟赛』多校A层冲刺NOIP2024模拟赛09
    Rank还行A.排列最小生成树(pmst)签,有点可惜。考虑连\(i\)与\(i+1\)时,所有边边权都是小于\(n\)的,因此我们只考虑边权小于\(n\)的边即可。因为边权为\(|p_i-p_j|\times|i-j|\),所以只考虑\(|p_i-p_j|\lt\sqrt{n}\)和\(|i-j|\lt\sqrt{n}\)的情况,每个点只用连......
  • 多校A层冲刺NOIP2024模拟赛09
    又双叒叕垫底啦rank4,T150,T2100,T339,T435。accoder上同分,rank20排列最小生成树(pmst)打的\(O(n^2\logn^2)\)暴力发现总是存在⼀颗⽣成树,使得⽣成树⾥的所有边的边权都⼩于\(n\)。考虑Kruskal的过程,我们只需要留下那些边权⼩于\(n\)的边。然后用桶排序即可。点......
  • 多校A层冲刺NOIP2024模拟赛09
    GG多校A层冲刺NOIP2024模拟赛09T1排列最小生成树(pmst)需要思考一会。你得发现一个性质:所有要的边的权值都得小于n,因为每个点都可以找到至少一条边权小于n的边,所以最后生成树里的边的边权一定小于n。那么$\vertp_i-p_j\vert\times\verti-j\vert$中较......