这是昨晚队友跟我说的题,不知道当时是什么玄幻的事件发生了,,我看成了两两相乘的XOR 纠结了好长时间间 不知道该怎么办

今天早上看了下这道题,发现是两两相加的XOR  然后就想了想昨晚的思路 发现可做

对于 XOR 在我的记忆中 ,大部分的都是拆成数位来做

那么这题  。。。。 其实也是类似的

拆成数位。有两种拆法  将数据拆成数位和将答案拆成数位(其实就是考虑答案的每一位)

想了想将数据拆成数位··········

没法单独考虑每一位的‘功’

那就将考虑答案的每一位了

最好考虑的是第一位了

只有1+0 才能得到 1 也就是数数 a b数组 1 和 0 的个数了,

第2位呢?  如果两个数组前两位的值相加不小于2^1 并且小于2^2就行了。。他的第2位不就是1了么??

以此类推,,,每一位数1的个数。。。

开始写代码

wa

想了想原因 试了一下1 1 3 3 这组数据发现答案是4  又想了想,,

在考虑第2位,,2=<ai+bi<4 || 6=<ai+bi<8 才是对的,,,

然后以此类推,

又错了,,,怎么搞的?

确认算法没错之后,,看了看输入输出,,

好久没做题

 #include <iostream>
#include <cstdio>
#include <string.h>
#include <algorithm> #define cl(a,b) memset(a,b,sizeof(a))
#define ll long long
#define ull unsigned long long
using namespace std; #define maxn 200005 ull aa[maxn],bb[maxn];
ull taa[maxn],tbb[maxn];
ull cc[],be[],en[];
int n; void initcc()
{
cl(cc,);
cc[]=;
be[]=;
en[]=;
for(int i=;i<=;i++)
{
cc[i]=cc[i-]*+;
be[i]=be[i-]*;
en[i]=en[i-]*;
}
// for(int i=0;i<62;i++)printf("%I64d %I64d %I64d\n",cc[i],be[i],en[i]);
} int main()
{
initcc();
int tt,ii;
cin>>tt;
ii=;
while(tt--)
{
scanf("%d",&n);
int i,j,k;
for(i=;i<n;i++)scanf("%llu",&aa[i]);
for(i=;i<n;i++)scanf("%llu",&bb[i]);
ull res=,bitc;
int s1,s2,e1,e2;
for(k=;k<;k++)
{
for(i=;i<n;i++)
{
taa[i]=aa[i]&cc[k];
tbb[i]=bb[i]&cc[k];
}
sort(taa,taa+n);
sort(tbb,tbb+n);
s1=n-;e1=n-;bitc=;
s2=n-;e2=n-;
for(i=;i<n;i++)
{
while(s1>=&&tbb[s1]+taa[i]>=be[k])s1--;
while(e1>=&&tbb[e1]+taa[i]>=en[k])e1--; while(s2>=&&tbb[s2]+taa[i]>=be[k]+en[k])s2--;
while(e2>=&&tbb[e2]+taa[i]>=en[k+])e2--; bitc+=e1-s1;
bitc+=e2-s2;
} res+=be[k]*(bitc%);
}
printf("Case #%d: %llu\n",++ii,res);
}
return ;
}

g++ 不支持 I64d???

无语了  换了输入输出

总算ac

bestcoder r44 p3 hdu 5270 ZYB loves Xor II的更多相关文章

  1. hdu 5269 ZYB loves Xor I

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission( ...

  2. hdu 5269 ZYB loves Xor I &amp;&amp; BestCoder Round #44

    题意: ZYB喜欢研究Xor,如今他得到了一个长度为n的数组A. 于是他想知道:对于全部数对(i,j)(i∈[1,n],j∈[1,n]).lowbit(AixorAj)之和为多少.因为答案可能过大,你 ...

  3. 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 ...

  4. hdu 5269 ZYB loves Xor I(字典树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5269 思路分析:当lowbit(AxorB)=2p 时,表示A与B的二进制表示的0-p-1位相等,第p ...

  5. 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取 ...

  6. HDU 5269 ZYB loves Xor I (二分法)

    题意: 给出一个序列,对每两个数求异或结果后取最低位的1出来作为一个数,然后求这些数字的和.比如:{a,b,c},结果是lowbit(a^b)+lowbit(a^c)+lowbit(b^a)+lowb ...

  7. HDU--5269 ZYB loves Xor I (字典树)

    题目电波: HDU--5269 ZYB loves Xor I 首先我们先解决 ai xor aj 每个数转化为二进制  我们用字典树统计 每个节点 0 和 1 的出现的个数 #include< ...

  8. ZYB loves Xor I(hud5269)

    ZYB loves Xor I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  9. 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 ...

随机推荐

  1. php代码的一些高效写法

    用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说 ...

  2. Python学习笔记整理(十)Python的if测试

    if语句是选取要执行的操作. 一.if语句 1.通用格式 形式是if测试,后面跟着一个或多个可选的elif(else if)测试,以及一个最终选用的else块.测试和else部分可以结合嵌套语句块,缩 ...

  3. d029: 求出2-100之间的所有质数(素数)

    内容: 求出2-100之间的所有质数(素数) 输入说明: 无 输出说明: 一行一个素数 /* 质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数(不包括0)整除的数. */ ...

  4. .NET MVC 插件化框架支持原生MVC的Area和路由特性

    前面开放的源码只是简单的Plugin的实现,支持了插件的热插拔,最近晚上偶然想到,原生的MVC提供Areas和RouteAtrribute等路由特性标签,按照先前的做法,无法解析插件的路由特性和Are ...

  5. 转:exit()与_exit()的区别

    版权声明:本文为博主原创文章,未经博主允许不得转载. 从图中可以看出,_exit 函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核的各种数据结构:exit 函数则在这些基础上做了 ...

  6. Ubuntu14.04 weblogic11g集群环境测试

    在当前域下面新建两个服务器,服务器信息设置: server1:127.0.0.1:7010 server2:127.0.0.1:7020 第一步:新建服务器 (1)进入“服务器”,点击新建: (2)填 ...

  7. 【转】Win8/8.1/Win7小技巧:揪出C盘空间占用的真凶

    原文网址:http://www.ithome.com/html/win8/55496.htm 不少使用Win8.Win8.1的用户不难发现,原先只占用20G大小的系统盘,随着使用时间的增加,C盘的磁盘 ...

  8. 【2012长春区域赛】部分题解 hdu4420—4430

    这场比赛特点在于两个简单题太坑,严重影响了心情..导致最后只做出两题....当然也反映出心理素质的重要性 1002: 题意:一个矩阵b[n][n]通过数组 a[n]由以下规则构成,现在已知b[n][n ...

  9. [LeetCode] 116. Populating Next Right Pointers in Each Node 解决思路

    Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...

  10. 回调函数的意义以及python实现

    因工作需要,最近在学习使用python来解析各种文件,包括xmind,xml,excel,csv等等. 在学习python解析XML的时候看到这样一段话: 3.ElementTree(元素树) Ele ...