手机交互网站,做网站的工具,谷歌优化,网站班级文化建设方案正题
P6466 题目大意
给你 k 个大小为 n 的数组#xff0c;有q次询问#xff0c;每次询问回答x在k个数组中的后继的异或和 解题思路
分散层叠模板 code
#includecstdio
#includecstring
#includeiostream
#includealgorithm
#define ll …正题
P6466 题目大意
给你 k 个大小为 n 的数组有q次询问每次询问回答x在k个数组中的后继的异或和 解题思路
分散层叠模板 code
#includecstdio
#includecstring
#includeiostream
#includealgorithm
#define ll long long
#define K 110
#define N 20100
using namespace std;
int n,k,q,d,x,ans,len[K],a[K][N],b[K][N],fr[K][N],nx[K][N][2];
void pre()
{int x,y;for(int ik;i0;--i){x1;y2;while(xn||ylen[i1]){len[i];if(xn(a[i][x]b[i1][y]||ylen[i1])){b[i][len[i]]a[i][x];nx[i][len[i]][0]len[i];nx[i][len[i]][1]nlen[i1]/21;x;}else{b[i][len[i]]b[i1][y];fr[i][len[i]]y;nx[i][len[i]][0]nlen[i1]/21;nx[i][len[i]][1]len[i];y2;}}for(int jlen[i]-1;j0;--j)nx[i][j][1]min(nx[i][j][1],nx[i][j1][1]),nx[i][j][0]min(nx[i][j][0],nx[i][j1][0]);nx[i][len[i]1][0]nx[i][len[i]1][1]len[i]1;fr[i][len[i]1]len[i1]1;}return;
}
int dfs(int x,int y,int z)
{if(xk)return 0;if(y1zb[x][y-1])y--;int s1nx[x][y][0],s2nx[x][y][1],now0;if(s1len[x])nowb[x][s1];return now^dfs(x1,fr[x][s2],z);
}
int ask(int x)
{if(xb[1][len[1]])return dfs(1,len[1]1,x);int l1,rlen[1];while(lr){int midlr1;if(xb[1][mid])rmid;else lmid1;}return dfs(1,l,x);
}
int main()
{scanf(%d%d%d%d,n,k,q,d);for(int i1;ik;i){for(int j1;jn;j)scanf(%d,a[i][j]);}pre();for(int i1;iq;i){scanf(%d,x);x^ans;ansask(x);if(i%d0)printf(%d\n,ans);}return 0;
}