--- title: "兔子与兔子" created: 2025-11-28 tags: - 算法 --- # 兔子与兔子 ## 题目 [兔子与兔子](https://www.acwing.com/problem/content/description/140/) ![[image-7c01a70c.png]] ## 思路分析 模板题一模一样 注意别忘了$p[0]=1$ $p^0=1$ ## 代码实现 ```cpp #include using namespace std; typedef unsigned long long ULL; const int N=1000010,P=131; char str[N]; ULL h[N],p[N]; int m; ULL find(int l,int r){ return h[r]-h[l-1]*p[r-l+1]; } int main() { cin>>str+1>>m; int n=strlen(str+1); p[0]=1; for(int i=1;i<=n;i++){ h[i]=h[i-1]*P+str[i]; p[i]=p[i-1]*P; } while(m--){ int l1,r1,l2,r2; cin>>l1>>r1>>l2>>r2; if(find(l1,r1)==find(l2,r2)) puts("Yes"); else puts("No"); } return 0; } ``` ## 同类题型 ## 视频讲解 --- ⬅️ [[2-Learning/02-算法/03-刷题理模型/串相关模型/字符串哈希|字符串哈希]] 🏠 [[00-刷题理模型]] ➡️ [[后缀数组|后缀数组]]