帮我对比效果哪不一样#include bitsstdc++h#define frex freopen#x in r stdin freopen#x out w stdout;#define heap priority_queueusing namespace std;typedef long long ll;char buf1 15 p1 = buf p2 = buf;#define getch
在第一个代码中:
- 函数
judge判断两个子串是否相等的方式为(ha1[lt - len + 1] - ha1[lt - 1] + MOD) % MOD == (ha2[rt + len - 1] - ha2[rt + 1] + MOD) % MOD,而在第二个代码中判断方式为ll l = ((ha1[lt + len - 1] - ha1[lt - 1] * a[len]) % MOD + MOD) % MOD; ll r = ((ha2[rt - len + 1] - ha2[rt + 1] * a[len]) % MOD + MOD) % MOD; return l == r;,两种方式的目的相同,但计算方式不同。 - 函数
fun的实现方式有所不同,第一个代码中使用的是二分查找,而第二个代码中使用的是二分查找的变种。 - 变量名和数组下标的使用方式有所不同,第一个代码中使用的是
lt和rt表示左右指针,而第二个代码中使用的是lt和rt表示左右指针的位置。 - 输出结果的方式有所不同,第一个代码中直接使用
putchar输出,而第二个代码中将结果存储在数组ans中,最后再输出
原文地址: https://www.cveoy.top/t/topic/izCH 著作权归作者所有。请勿转载和采集!