HDU 5269 ZYB loves Xor I 01trie
来源:互联网 发布:深圳网络金融公司 编辑:程序博客网 时间:2024/06/08 08:14
题目:
http://acm.hdu.edu.cn/showproblem.php?pid=5269
题意:
给定一个长度为
思路:
首先把所有数字倒着插入到
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 50000 + 10, M = 2, INF = 0x3f3f3f3f, mod = 998244353;struct node{ node *next[M]; int val; void init() { memset(next, 0, sizeof next); val = 0; }}trie[N*30], *root;int tot;int len = 29;int cas = 0;int a[N];node* new_node(){ trie[tot].init(); return trie + tot++;}void trie_init(){ tot = 0; root = new_node();}void trie_insert(int x){ node *p = root; for(int i = 0; i <= len-1; i++) { int j = 1 & (x >> i); if(p->next[j] == NULL) p->next[j] = new_node(); p->next[j]->val++; p = p->next[j]; }}ll trie_query(int x){ node *p = root; ll ans = 0; for(int i = 0; i <= len-1; i++) { int j = ! (1 & (x >> i)); if(p->next[j]) ans += p->next[j]->val * (1LL << i); p = p->next[!j]; } return ans;}int main(){ int t, n; scanf("%d", &t); while(t--) { trie_init(); scanf("%d", &n); for(int i = 1; i <= n; i++) { scanf("%d", &a[i]); trie_insert(a[i]); } ll ans = 0; for(int i = 1; i <= n; i++) ans += trie_query(a[i]); printf("Case #%d: %lld\n", ++cas, ans % mod); } return 0;}
阅读全文
0 0
- HDU 5269 ZYB loves Xor I( 01 Trie 树)
- HDU 5269 ZYB loves Xor I 01trie
- HDU 5269 ZYB loves Xor I 贡献+Trie
- hdu 5269 ZYB loves Xor I
- hdu 5269 ZYB loves Xor I
- hdu 5269 ZYB loves Xor I
- HDU 5269 ZYB loves Xor I
- HDU-5269 ZYB loves Xor I
- HDU 5269 ZYB loves Xor I [01字典树]【思维】
- HDU 5269 && BestCoder #44 1002 ZYB loves Xor I (分治)
- hdu 5269 ZYB loves Xor I && BestCoder Round #44
- HDU 5269 ZYB loves Xor I(位运算)
- hdu 5269 ZYB loves Xor I(字典树)
- hdu 5269 ZYB loves Xor I(字典树)
- HDOJ 5269 ZYB loves Xor I
- HDU 5269 ZYB loves Xor I——BestCoder Round #44(字典树)
- 字典树 hdu5269 ZYB loves Xor I
- BestCoder#44 ZYB loves Xor I
- 数组的简单二分查找
- HDU-2017 多校训练赛10-1011-Two Paths
- 【POJ】2566
- FreeRTOS系统
- Java进阶(三十三)java基础-filter
- HDU 5269 ZYB loves Xor I 01trie
- 成员变量、类变量和局部变量的区别
- (九)事件的激活与调度
- HDU 2089 不要62 & HDU 3652 B-number(初级数位DP)
- 基于外部一个省市联动js框架,实现初始化特定的地址级联
- 文章标题
- HDU
- 浅拷贝,深拷贝
- gcc编译时的输出如何带上颜色