摘要:
首先 Trie树: #include<bits/stdc++.h> using namespace std; int T,q,n,t[3000005][65],cnt[3000005],idx; char s[3000005]; int getnum(char x){ if(x>='A'&&x<=' 阅读全文
摘要:
还是rmq. 原来如此 代码: #include <bits/stdc++.h> using namespace std; const int N=1e5+7; int a[N],b[N],rmq[N][20]; int pw(int k){ int res=1; while(k--) res*=2 阅读全文
摘要:
这是rmq 半懂不懂(因为已经会线段树了) 但是!它的代码真的好短啊啊啊啊啊! #include <bits/stdc++.h> using namespace std; int dp1[500010][20],dp2[500010][20],w[1000010]; int main(){ int 阅读全文
摘要:
题解 题意:题面很臭很长。大意是,有一个大小为N的环,给出M,K,D,以及N个数。我们进行K次操作,每次操作把距离当前点不超过D的累加到当前点,结果模M。 思路:因为要进行K次,每次的原则是一样的,我们可以想到用矩阵来优化,如果i能到达j,把么base[i][j]=1;则结果ans=A(base^K 阅读全文