#include using namespace std; #define ll long long const ll maxn = 3e5+5; const ll mod = 1e9+7; ll n; ll a[maxn], b[maxn]; void fwt(ll *a) { for(ll d=... ...
分类:
其他好文 时间:
2018-08-23 15:39:07
阅读次数:
156
图片xor的脚本 和图片进行xor or and 运算的脚本 ...
分类:
其他好文 时间:
2018-08-23 02:04:40
阅读次数:
179
FWT 是求多项式位元算卷积的一种高效方法 最常见的有 or、and、xor 这三种操作 void FWT(LL f[], int n, int op) { int mx = 0; while((1LL<<mx) < n) mx++; for (int i = 1; i <= mx; ++i) { ...
分类:
其他好文 时间:
2018-08-20 13:44:48
阅读次数:
171
题目 给出一棵有n个结点的树,树根是1,每个结点给出一个value。然后给出q个询问,每个询问给出两个整数u和x,你要在以u结点为根的子树中找出一个结点v,使得val[v] xor x最大, 并输出这个最大值 分析 显而易见的可持久化字典树,只不过这次每次查询不是查询一个区间,而是查询一棵子树。那么 ...
分类:
其他好文 时间:
2018-08-18 11:36:29
阅读次数:
125
A:SUM 水。 1 #include<bits/stdc++.h> 2 3 using namespace std; 4 5 #define N 100010 6 typedef long long ll; 7 8 int n; 9 ll arr[N]; 10 ll sum[N]; 11 12 i ...
分类:
其他好文 时间:
2018-08-14 21:06:18
阅读次数:
211
题面 "题目传送门" 解法 第一问就是线性基的裸题 第二问也很类似,从低位向高位枚举,如果线性基上这一位有数,那么直接异或后返回 时间复杂度:$O(n\ log\ a_i)$ 代码 cpp include define int long long using namespace std; templ ...
分类:
其他好文 时间:
2018-08-14 19:54:31
阅读次数:
139
void nnt(int a[],int len,int on) { for(int i=0;i<len;i++) if(i<r[i]) swap(a[i],a[r[i]]); for(int i=1;i<len;i<<=1) { int wn=mod_pow(3,(mod-1)/(i<<1)); ...
分类:
其他好文 时间:
2018-08-14 14:56:09
阅读次数:
143
#include #include #include #include #include #include #include #include #include #include #include #define rap(i, a, n) for(int i=a; i=a; i--) #define... ...
分类:
其他好文 时间:
2018-08-10 23:04:19
阅读次数:
134
哇,做梦也没想到我居然能写LCT 题意: 给定n个点以及每个点的权值,要你处理接下来的m个操作。操作有4种。操作从0到3编号。点从1到n编号。 0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和。保证x到y是联通的。 1:后接两个整数(x,y),代表连接x到y,若x到y已经联通 ...
分类:
其他好文 时间:
2018-08-10 20:01:50
阅读次数:
159
今天本来想写一个可持久化Trie树,发现这道题一直没做就补上了。 其实思路很简单,假如说两个数,和同一个数异或,很显然,由于进制,高位上的一个1可以大于低位上所有1,所以即使后面的情况再糟糕,也比取后面好的值高(其实就是1000比0111大) 所以可以建一个01线段树,从高往低插入一个数,比较时取反 ...
分类:
其他好文 时间:
2018-08-10 01:34:36
阅读次数:
185