摘要:
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 int F_q_q=0; 6 int Q_che[50]; 7 for(int i=1;i<=32;i++) 8 Q_che[i]=i; 9 int beatifu 阅读全文
摘要:
1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxx = 6e5+10; 4 int trie[32*maxx][2],val[32*maxx],sum[32*maxx]; 5 int rt[maxx],s[maxx],t 阅读全文
摘要:
题意:给出一颗n个节点的数,节点之间的边有权值,求任意两个节点之间的最大异或值 思路:我们将整个图走一遍dfs,求出节点1到其他所有节点的异或值,用数组dis来储存 然后接下来求任意两个节点之间的路径异或值,就是dis【x】^dis【y】 所以我们接下来就用每一个点来遍历一次图,枚举更新最大值即可 阅读全文
摘要:
题意 给出n个数和m次询问,每次询问给出一个数x,问在n个数中哪个数与x异或值最大 思路:将给出的n个数放进0 1字典树,然后在询问的时候,倘若目前位为0,则去找相反的节点 1 #include <queue> 2 #include <vector> 3 #include <stdio.h> 4 # 阅读全文
摘要:
题意:给出许多个字符串;然后接下来再给出询问: 每一个询问都是一个字符串,问以这个字符串为前缀的单词有多少个; 这是字典树典型例题; 我们将题意给出的字符串建字典树,在建的时候,在每个节点位置都sum【x】++; 询问的时候:用单词跑一遍字典树,在跑到最后一个单词的节点的时候,返回此节点的sum即可 阅读全文