hdu5269 ZYB loves Xor I
分治法和字典树都可以,都是递归,但字典树耗内存
从第一bit开始,若相同则xor为0,分到同一部分,不相同则统计,且此时lowbit为这一bit,最后结果要乘以2
- /*分治法*/
- #include<cstdio>
- #define MOD 998244353
- using namespace std;
- int a[],t[],T,cas=,n,sum;
- void fenzhi(int l,int r,int mask)
- {
- if(r-l<=||mask==<<) return;
- int i,j=l,k=r-;
- for(i=l;i<r;i++)
- {
- if(a[i]&mask) t[j++]=a[i];
- else t[k--]=a[i];
- }
- sum=(sum+(long long)(j-l)*(r-j)*mask)%MOD;
- for(i=l;i<r;i++) a[i]=t[i];
- fenzhi(l,j,mask<<);
- fenzhi(j,r,mask<<);
- }
- int main()
- {
- scanf("%d",&T);
- while(T--)
- {
- scanf("%d",&n);
- for(int i=;i<n;i++)
- scanf("%d",&a[i]);
- sum=;
- fenzhi(,n,);
- printf("Case #%d: %d\n",cas++,(sum*)%MOD);
- }
- return ;
- }
- /*字典树*/
- #include <iostream>
- #include<cstdio>
- #include<cstring>
- #define MOD 998244353
- using namespace std;
- struct Node
- {
- int num;
- int left,right;
- };
- Node node[];
- int T,n,a,idx,sum,cas=;
- void insert(int a)
- {
- int root=,mask=;
- for(int i=;i<;i++)
- {
- if(a&mask)
- {
- int &u=node[root].left;
- if(!u) u=idx++;
- node[u].num++;
- root=u;
- }
- else
- {
- int&u=node[root].right;
- if(!u) u=idx++;
- node[u].num++;
- root=u;
- }
- mask<<=;
- }
- }
- void dfs(int x,int depth)
- {
- if(node[x].num<=) return;
- sum=(sum+(long long)node[node[x].left].num*node[node[x].right].num*(<<depth))%MOD;
- dfs(node[x].left,depth+);
- dfs(node[x].right,depth+);
- }
- int main()
- {
- scanf("%d",&T);
- while(T--)
- {
- scanf("%d",&n);
- memset(node,,sizeof(node[])*n*);
- idx=;
- node[].num=n;
- for(int i=;i<n;i++)
- {
- scanf("%d",&a);
- insert(a);
- }
- sum=;
- dfs(,);
- printf("Case #%d: %d\n",cas++,sum*%MOD);
- }
- return ;
- }
hdu5269 ZYB loves Xor I的更多相关文章
- HDU--5269 ZYB loves Xor I (字典树)
题目电波: HDU--5269 ZYB loves Xor I 首先我们先解决 ai xor aj 每个数转化为二进制 我们用字典树统计 每个节点 0 和 1 的出现的个数 #include< ...
- ACM学习历程—HDU5269 ZYB loves Xor I(位运算 && dfs && 排序)(BestCoder Round #44 1002题)
Problem Description Memphis loves xor very musch.Now he gets an array A.The length of A is n.Now he ...
- ZYB loves Xor I(hud5269)
ZYB loves Xor I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- hdu 5269 ZYB loves Xor I
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission( ...
- hdu 5269 ZYB loves Xor I && BestCoder Round #44
题意: ZYB喜欢研究Xor,如今他得到了一个长度为n的数组A. 于是他想知道:对于全部数对(i,j)(i∈[1,n],j∈[1,n]).lowbit(AixorAj)之和为多少.因为答案可能过大,你 ...
- bestcoder r44 p3 hdu 5270 ZYB loves Xor II
这是昨晚队友跟我说的题,不知道当时是什么玄幻的事件发生了,,我看成了两两相乘的XOR 纠结了好长时间间 不知道该怎么办 今天早上看了下这道题,发现是两两相加的XOR 然后就想了想昨晚的思路 发现可做 ...
- HDU 5269 ZYB loves Xor I Trie树
题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5269 bc:http://bestcoder.hdu.edu.cn/contests/con ...
- hdu 5269 ZYB loves Xor I 分治 || Trie
题目大意: 长度为\(n\)的数组A.求对于所有数对\((i,j)(i \in [1,n],j \in [1,n])\),\(lowbit(A_i xor A_j)\)之和.答案对998244353取 ...
- HDU 5269 ZYB loves Xor I (二分法)
题意: 给出一个序列,对每两个数求异或结果后取最低位的1出来作为一个数,然后求这些数字的和.比如:{a,b,c},结果是lowbit(a^b)+lowbit(a^c)+lowbit(b^a)+lowb ...
随机推荐
- laravel5.2/laravel5.3入门指南 Windows 上快速安装并运行 Laravel 5.x
1 首先要搭建本地服务器环境推荐phpstudy2016及wampServer3.0.6 下载链接可参考 http://www.cnblogs.com/zzcit/p/5823742.html 注意一 ...
- js for...in 语句
原文链接:http://www.w3school.com.cn/js/js_loop_for_in.asp for...in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作). 实例 ...
- Java IO 四大附加接口、try-with-resource
Java IO 四大附加接口.try-with-resource @author ixenos 四大附加接口 Closeable.Flushable.Readable.Appendable Close ...
- 7.hibernat实现双向一对多(多对一)
1.创建如下项目结构 2.在项目的src下创建hibernate.cfg.xml主配置文件 <?xml version="1.0" encoding="UTF-8& ...
- 6、plsql编程
一.PLSQL编程思维导图 二.PLSQL编程思维导图对应笔记 PL/SQL编程 @Holly老师 5.1 为什么学习PL/SQL编程? 当我们要批量插入100万数据,怎么办? .难道要写一百条ins ...
- Zeppelin添加mysql解释器
安装Apache zeppelin 1 wget http://apache.fayea.com/zeppelin/zeppelin-0.6.2/zeppelin-0.6.2-bin-all.tgz ...
- C/C++ - <string> 与<string.h>、<cstring>的区别
<string.h><string.h>是C版本的头文件,包含比如strcpy.strcat之类的字符串处理函数. <string><string>是C ...
- 放弃阿里云主机,选择高性价比Vultr VPS免备案
阿里云主机ECS推广多年后,质量有所改善,但我依然强烈不推荐阿里云主机.考虑性价比带宽速度等因素后,我推荐的vps品牌有vultr和digitalocean,还有大名鼎鼎的linode,是中国用户的最 ...
- 一个神奇SQL引发的故障【转】
前几天一个客户数据库主实例告警,诊断过程中发现是由一个慢SQL导致的数据库故障,而在排查逐步深入之后却发现这个现象的不可思议. 问题描述 2016年12日09日,大概9点26分左右,一个客户的生产库主 ...
- sql参数化查询避免注入漏洞的原因探析
网上其他同学的都说是重用执行计划,将用户输入的作为文本查询,到底如何实现,我用下面三行代码来解析一下. DECLARE @test NVARCHAR() SET @test=' or 1='1 SEL ...