题目链接 题意:求两个串的最长公共子串长度 思路:对a串建sam,b串跑 #include <bits/stdc++.h> using namespace std; #define ll long long const int maxn=250010; char s[maxn]; struct Su Read More
题目链接 题意:求n个字符串的公共子串(n<=10,len(s[i])<=100000) 思路:将第一个字符串建立sam,把其他字符串跑到sam的每个节点的最长匹配长度记录下来。然后对于每个结点取最小,用dp数组记录。但对于每个fa[i],应该dp[fa[i]]=max(dp[fa[i]],dp[i Read More
题目链接 题意:一个n*m的格子里全是灯。每次选出一个矩形,改变四个角灯的状态,而且右下角的灯初始必须是开的。 思路:Nim积模板题。 #include<iostream> #include<cstdio> #include<cstring> #define N 2000000 using name Read More
思路:杜教筛模板题。 #include <algorithm> #include <cstdio> #include <cstring> #include <map> using namespace std; const int maxn = 2000010; typedef long long l Read More
题目链接 题意: 其中d(n)代表n的约数个数 思路: #include <bits/stdc++.h> using namespace std; #define int long long const int N = 5e4 + 5; int n, m, T, pr[N], mu[N], d[N] Read More