bestcoder r44 p3 hdu 5270 ZYB loves Xor II
这是昨晚队友跟我说的题,不知道当时是什么玄幻的事件发生了,,我看成了两两相乘的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的更多相关文章
- 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)之和为多少.因为答案可能过大,你 ...
- 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(字典树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5269 思路分析:当lowbit(AxorB)=2p 时,表示A与B的二进制表示的0-p-1位相等,第p ...
- 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 ...
- HDU--5269 ZYB loves Xor I (字典树)
题目电波: HDU--5269 ZYB loves Xor I 首先我们先解决 ai xor aj 每个数转化为二进制 我们用字典树统计 每个节点 0 和 1 的出现的个数 #include< ...
- ZYB loves Xor I(hud5269)
ZYB loves Xor I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- 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 ...
随机推荐
- PHP判断是否微新浏览器
$inwechat = false; $user_agent = $_SERVER['HTTP_USER_AGENT']; if (strpos($user_agent, 'MicroMessenge ...
- 《python基础教程》笔记之 其它语句1
print 相关 print可以打印多个表达式,只要将它们用逗号隔开就好,结果中每个参数之间都会插入一个空格,使用+可以避免空格,如 >>> print 'age:',42age: ...
- centos6.4虚拟机vmware-tools安装及启动到进度条卡死
vmware-tools安装: linux-VMware tools安装步骤: (1)在CD-ROM虚拟光驱中选择使用ISO镜像,找到VMWARE TOOLS 安装文件,如D:\VMware\VMwa ...
- 转:单片机C语言中的data,idata,xdata,pdata,code
从数据存储类型来说,8051系列有片内.片外程序存储器,片内.片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code.data.xdata.idata以及根据51系列特点而设定的 ...
- std::vector的分片拷贝和插入
一般我们在用Qt的QByteArrary或者List的时候,会有相应的append的方法,该函数,就是把数据加入末尾.但是std::vector就没有相应的方法.但是我们可以用insert方法来实现: ...
- 在SQL Server中使用命令调用SSIS包
在SQL Server中可以使用dtexec命令运行SSIS包(2005以上版本),当然也可以通过系统过程:xp_cmdshell调用dtexec运行SSIS包. 具体操作步骤如下: 1.首先,当然是 ...
- python 发邮件
http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html http://my.oschina.net/lenglingx/blog ...
- windows环境变量如何在cmd中打印
在windows的cmd下,用"set"命令可以得到全部的环境变量,如何想得到某个环境变量,直接这样"set path"就可以了. set不仅如何,还有其他功能 ...
- 【转】Android:控件Spinner实现下拉列表
原文网址:http://www.cnblogs.com/tinyphp/p/3858920.html 在Web开发中,HTML提供了下拉列表的实现,就是使用<select>元素实现一个下拉 ...
- bzoj4096 [Usaco2013 dec]Milk Scheduling
Description Farmer John has N cows that need to be milked (1 <= N <= 10,000), each of which ta ...