首页 > 其他分享 >杭电多校补题

杭电多校补题

时间:2024-07-19 19:29:28浏览次数:11  
标签:杭电多校 const int h1 补题 size

1001.循环位移

#include<bits/stdc++.h>
    
using namespace std;
typedef unsigned long long ull; 
const int N = 1048580 * 2; 
const int P = 131;
ull p[N], h1[N], h2[N];

void solve() {
    string a, b;
    cin >> a >> b;
    int n = a.size(), m = b.size();
    a = a + a;
    for (int i = 0; i < (n << 1); i++) {
        h1[i + 1] = h1[i] * P + a[i]; 
    }
    for (int i = 0; i < m; i++) {
        h2[i + 1] = h2[i] * P + b[i]; 
    }
    map <ull, int> mp;
    for (int i = 0; i < n; i++) {
        mp[h1[i + n] - h1[i] * p[n]]++;
    }
    int ans = 0;
    for (int i = 0; i <= m - n; i++) {
        ans += mp[h2[i + n] - h2[i] * p[n]];
    }
    cout << ans << '\n';
}
    
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    p[0] = 1;
    for (int i = 1; i < N; i++) {
        p[i] = p[i - 1] * P;
    }
    int _; cin >> _;
    while(_--) solve();
    return 0;
}

  

标签:杭电多校,const,int,h1,补题,size
From: https://www.cnblogs.com/youhualiuh/p/18312265

相关文章

  • 2024夏令营提高1模考0718模拟赛(提高1)补题报告
    2024夏令营提高1模考0718模拟赛(提高1)补题报告$$0718模拟赛(提高1)\\补题报告\2024年7月18日\by\\\唐一潇$$一、做题情况第一题比赛$100/100$,赛后通过第二题比赛$0/100$,赛后通过第三题比赛$0/100$,赛后通过第四题比赛$0/100$,赛后通过比......
  • 牛客day1的补题和总结
    C和I是签到题,没什么好说的。从A开始。A读题读了我20分钟,我才把样例弄懂。。这题目比cf阴间一佰倍,主要也是这类题的题面就是麻烦,有时候中文的题面的也能让我写一半回去再读几遍。这个主要就是写太慢了。完全可以更快的,而且这个思路我觉得大部分其实是lhgg帮我出的,我自己的思路......
  • 河南萌新联赛2024第(一)场 补题报告
    小蓝的二进制询问找规律,可以发现把从0开始的十进制数字转化为二进制。每一个二进制位有0或1两种状态。从低到高的第一位以2为周期,第二位以4为周期,第三位以8为周期……也就是说第n位以2^{n}为周期。每个周期都是前一半是0,后一半是1。举例:000001010011100……#inclu......
  • 码蹄杯国赛补题
    由于今天脑子没完全恢复,打算补一下题目清醒清醒加上寝室里无聊打算补补之前的题过过脑子提高一下A.MC0340矩阵虫题意:给你一个n构成n*n矩阵每一行数字依次为1,2,3,4...Code:#include<bits/stdc++.h>usingnamespacestd;intmain(){intn;cin......
  • Codeforces Round 958 (Div. 2)补题
    文章目录A题(拆分多集)B题(获得多数票)C题(固定OR的递增序列)A题(拆分多集) 本题在赛时卡的时间比较久,把这题想复杂了,导致WA了两次。后来看明白之后就是将n每次转换成k-1个1,到最后分不出来k-1个1直接一次就能分完,即结果加一;#include<bits/stdc++.h>#definein......
  • 牛客小白月赛98+ABC362补题
    A-骰子魔术_牛客小白月赛98(nowcoder.com)直接判断这个数在数组里有没有就行代码:#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;lln,x;lla[505];voidsolve(){for(inti=1;i<=n;i++)cin>>a[i];for(inti=1;i<=n;i++){......
  • 2021杭电多校10 D.Pty hates prime numbers题解
    前言暑期第三次组队赛是选的21年杭电多校10,遗憾爆0,被对面队打爆,赛后狠狠补题。这道题的题解,以及网上搜到的其他题解看了好久没看懂,在问了队里大腿多次后,总算磨出来了,这里讲一下我的理解。题意多次询问,每次给定\(n\)和\(k\),如果一个数的质因数里包括前\(k\)个质数,则这个数......
  • AtCoder Beginner Contest 362 补题记录(A~E,G)
    A分三类情况讨论即可。voidsolveqwq(){intr=io.read(),g=io.read(),b=io.read();stringqwq=io.readstring();if(qwq=="Blue")printf("%lld\n",min(r,g));elseif(qwq=="Red")printf("%lld\n",......
  • 个人赛补题
    round1范围很小用暴力+贪心,左右枚举,先拿再放。尽量放小的所以需要排下序includeinclude"map"include"algorithm"include"cmath"include"vector"include"set"include"queue"defineintlonglongusingnamespacestd;void......
  • AtCoder Beginner Contest 361 补题记录(A~F)
    开题顺序:A-C-F-D-B-E。A直接模拟即可。boolbegmem;#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;classFastIO{public:intread(){into=1,x;charch;while(!isdigit(ch=getchar())){if......