传送门

Description

给定区间[L,R],请统计有多少对整数A,B(L<=A,B<=R)满足A xor B的值在二进制表示下,去掉所有前导0后是回文串

Input

第一行包含一个正整数T(1<=T<=100),表示测试数据的组数。
每组数据包含一行两个整数L,R(0<=L<=R<=10^12),含义如题面所述。

Output

对于每组数据输出一行一个整数,即满足条件的整数对个数。
 
 
反正就是数位dp,从两端往中间跑,记录下大小关系,谁都会写。
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std; ll n,m,T,f[][];
ll min(ll a,ll b){return a<b?a:b;}
ll work(ll n,ll a,ll b){
ll MMH=;
memset(f,,sizeof(f));
f[][]=;
for (ll i=;i<=(n>>);i++)
for (ll qa=;qa<;qa++)
for (ll qb=;qb<;qb++)
for (ll ha=;ha<;ha++)
for (ll hb=;hb<;hb++)
if ((qa^qb)==(ha^hb)&&(i!=||qa!=qb)){
ll QA=(a>>n-i)&,QB=(b>>n-i)&;
ll HA=(a>>i-)&,HB=(b>>i-)&; for (ll k=;k<;k++){
ll K=k;
if (QA<qa&&!(k&)) continue;
if (QB<qb&&!(k&)) continue; if (QA>qa) K|=;
if (QB>qb) K|=; if (HA>ha) K|=;else if (HA<ha) K&=;
if (HB>hb) K|=;else if (HB<hb) K&=;
f[i][K]+=f[i-][k];
}
} if (n&){
ll i=n+>>;
for (ll _a=;_a<;_a++)
for (ll _b=;_b<;_b++)
if (n!=||_a!=_b){
ll A=(a>>i-)&,B=(b>>i-)&; for (ll k=;k<;k++){
ll K=k;
if (A<_a&&!(k&)) continue;
if (B<_b&&!(k&)) continue; if (A>_a) K|=;
if (B>_b) K|=;
f[i][K]+=f[i-][k];
}
}
}
ll i=n+>>;
for (ll k=;k<;k++)
if (((k&)||(k&))&&((k&)||(k&))) MMH+=f[i][k];
return MMH;
}
ll Mavis(ll a,ll b){
if (b<) return ;
ll i,j,k,mmh=;
for (i=,j=,k=;i;i--){
j<<=;k<<=;j|=(a>>i)&;k|=(b>>i)&;
if (j==k) mmh+=j*work(i,(1ll<<i)-,(1ll<<i)-)+work(i,a&((1ll<<i)-),b&((1ll<<i)-));else mmh+=k*work(i,(1ll<<i)-,(1ll<<i)-)+work(i,(1ll<<i)-,b&((1ll<<i)-));
}
return mmh+b+;
}
int main(){
scanf("%lld",&T);
while(T--){
scanf("%lld%lld",&n,&m);
printf("%lld\n",Mavis(m,m)-*Mavis(m,n-)+Mavis(n-,n-));
}
}

bzoj 4918: 回文数对的更多相关文章

  1. hdu1282回文数猜想

    Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其 ...

  2. C语言 · 特殊回文数

    问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n . 输入格式 输入一行,包含一个正整数n. 输 ...

  3. Java判断回文数算法简单实现

    好久没写java的代码了, 今天闲来无事写段java的代码,算是为新的一年磨磨刀,开个头,算法是Java判断回文数算法简单实现,基本思想是利用字符串对应位置比较,如果所有可能位置都满足要求,则输入的是 ...

  4. luogu1207双重回文数[usaco1.2]Dual Palindromes

    题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做“回文数”.例如,12321就是一个回文数,而77778就不是.当然,回文数的首和尾都应是非零的,因此0220就不是回文数. 事实上 ...

  5. luogu10125回文数[noip1999 Day1 T1]

    题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数 ...

  6. 洛谷 P1015 回文数 Label:续命模拟QAQ

    题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数 ...

  7. 2016中国大学生程序设计竞赛(长春)-重现赛 1010Ugly Problem 回文数 模拟

    Ugly Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tota ...

  8. 回文数 第N个回文数

    判断回文数还是不难,如果能转为字符串就更简单了. 如果是求第N个回文数呢. 12321是一个回文数,这里先考虑一半的情况. 回文数的个数其实是有规律的.如: 1位回文数: 9个 2位回文数: 9个 3 ...

  9. 合工大OJ 1331 回文数

    Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数. 任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其和不是回文数, ...

随机推荐

  1. Robotframework-Appium系列:登录操作

    之前Appium的环境已经配置完成(参考Robotframework-Appium系列:安装配置),接下来就是如何使用Appium来完成我们的apk的测试工作. 一.环境准备 所需的软件列表如下 Ro ...

  2. kvm 随笔

    1. 查看kvm虚拟机状态 # virsh list --all   2. KVM虚拟机开机 # virsh start windows   3. KVM虚拟机关机或断电 (1) 关机 virsh关机 ...

  3. [array] leetcode - 41. First Missing Positive - Hard

    leetcode - 41. First Missing Positive - Hard descrition Given an unsorted integer array, find the fi ...

  4. PHP-无限级分类

    给定省市地区数组如下: $area = array(                   array('id'=>1,'name'=>'安徽','parent'=>'0'),     ...

  5. Spring任务调度之Quartz集成

    推荐一个博客:http://blog.csdn.net/column/details/14251.html 基本概念 Job:是一个接口,只有一个方法void execute(JobExecution ...

  6. 深入理解用户权限rwx

    其实在UNIX的实现中,文件权限用12个二进制位表示,如果该位置上的值是1,表示有相应的权限,如果是0则没有相应权限第11位为SUID位,第10位为SGID位,第9位为sticky位,第8-0位对应于 ...

  7. [编织消息框架][JAVA核心技术]cglib动态代理

    先在mavne项目里添加cglib库 maven仓库搜索cglib版本 maven地址:http://mvnrepository.com/ 点击最新的版本 3.2.5 复制到pom.xml  depe ...

  8. Webpack 2 视频教程 017 - Webpack 2 中分离打包项目代码与组件代码

    原文发表于我的技术博客 这是我免费发布的高质量超清「Webpack 2 视频教程」. Webpack 作为目前前端开发必备的框架,Webpack 发布了 2.0 版本,此视频就是基于 2.0 的版本讲 ...

  9. Tomcat在windows系统中的防火墙设置

    在Win7下安装Tomcat后,其他机器无法访问到Tomcat服务,需要修改防火墙设置. 控制面板->window防火墙->允许程序通过Windows防火墙通信 将Tomcat目录下\bi ...

  10. Dubbo(三) 安装Zookeeper 单机-集群

    一.下载zookeeper zookeeper下载地址:https://www.apache.org/dyn/closer.cgi/zookeeper/点击下载 二.启动配置 选择合适版本下载后解压到 ...