首页 > 其他分享 >AtCoder Beginner Contest 367 题解(E~G)

AtCoder Beginner Contest 367 题解(E~G)

时间:2024-08-18 09:53:49浏览次数:16  
标签:AtCoder hash Contest 题解 基环树 哈希 367

E

转换关系看作有向边,\(n\) 点 \(n\) 边构成基环树森林,基环树森林k后继唯一,记 f[i][j] 为点 \(i\) 的 \(2^j\) 级祖先,随便倍增。

F

一眼哈希,不知道有没有不哈希的做法。

在这里我们不关心元素的顺序,只关心元素是否出现以及出现几次,考虑一个 \(n\) 位 \(n+1\) 进制数,\(a_i\) 出现一次就在 \(a_i\) 位上 \(+1\),最多加 \(n\) 次不会出现进位,最终得到的数就反映了元素的出现次数,并且是唯一的。在此基础上就和字符串哈希类似了,选两个素数 \(\ge n+1\) 当基数做双哈希就行了。

收集了一些 HL 群里的做法:

1.对原序列随机赋权,hash值是区间权值和(sum hash)或区间权值异或和(xor hash),还有人找到了原题(超级加强版)。

标签:AtCoder,hash,Contest,题解,基环树,哈希,367
From: https://www.cnblogs.com/xm-blog/p/18365318

相关文章

  • abc364 题解
    第一次场切A~F,写个题解纪念一下。比赛链接:https://atcoder.jp/contests/abc367A-ShoutEveryday题意:高桥每天\(B\)时刻睡觉,\(C\)时刻起床(\(B,C\)时刻也在睡觉),请问高桥\(A\)时刻是否没睡。思路:对于\(B<=C\)和\(B>C\)分别处理即可。代码:https://atcoder.jp/con......
  • AtCoder Beginner Contest 367
    A-ShoutEveryday(abc367A)题目大意高桥从\(A\)睡到\(B\),如果在\(C\)时,他醒着,他则会对章鱼烧发癫,问他今天是否发癫。解题思路由于只有\(24\)小时,直接枚举\(A\toB\),看看是否遍历到\(C\)即可。神奇的代码#include<bits/stdc++.h>usingnamespacestd;usingLL=......
  • AtCoder Beginner Contest 367 补题记录(A~F)
    很Easy一场,共计用时\(34\)minAconstintN=1000100;signedmain(){strings;cin>>s;intcnt=0;intn=s.size();if(s[n-1]=='0'&&s[n-2]=='0'&&s[n-3]=='0'){s.pop_back();s.p......
  • 题解:AtCoder Beginner Contest 367
    总体情况A题意在AtCoder王国,居民们每天都要在\(A\)点大声喊出他们对章鱼烧的热爱。住在AtCoder王国的高桥每天\(B\)点睡觉,\(C\)点起床(\(24\)小时钟)。他醒着的时候可以喊出对章鱼烧的爱,但睡着的时候却不能。判断他是否每天都能喊出对章鱼烧的爱。这里,一天有\(24......