bzoj4918: 回文数对
Description
Input
Output
#include<cstdio>
#include<cstring>
#define F(i,n) for(int i=0;i<n;++i)
typedef long long i64;
const int M=;
int T;
i64 L,R;
i64 f[M+][][][][];
i64 min(i64 a,i64 b){return a<b?a:b;}
inline int tr(int a,int b){return a==?b:a;}
i64 cal(i64 m1,i64 m2){
if(m1<||m2<)return ;
i64 mn=min(m1,m2);
i64 ans=;
for(int p1=M;p1>=-;--p1){
memset(f,,sizeof(f));
f[p1+][(m1>>p1+)==(mn>>p1+)][][(m2>>p1+)==(mn>>p1+)][]=;
f[p1+][][][][]+=mn>>(p1+);
int l,r;
for(l=p1,r=;l>=r;--l,++r){
int xb1=(m1>>l&)-,xb2=(m1>>r&)-;
int yb1=(m2>>l&)-,yb2=(m2>>r&)-;
F(x1,)F(x2,)F(y1,)F(y2,)
for(int z=(l==p1);z<;++z)
F(t1,)F(t2,)if(l>r||t1==t2){
f[l][tr(x1,t1-xb1)][tr(t2-xb2,x2)][tr(y1,(t1^z)-yb1)][tr((t2^z)-yb2,y2)]+=f[l+][x1][x2][y1][y2];
}
}
F(x1,)F(x2,)F(y1,)F(y2,)if(tr(x1,x2)!=&&tr(y1,y2)!=)ans+=f[l+][x1][x2][y1][y2];
}
return ans;
}
int main(){
for(scanf("%d",&T);T;--T){
scanf("%lld%lld",&L,&R);
printf("%lld\n",cal(R,R)+cal(L-,L-)-cal(L-,R)-cal(R,L-));
}
return ;
}
bzoj4918: 回文数对的更多相关文章
- hdu1282回文数猜想
Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其 ...
- C语言 · 特殊回文数
问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n . 输入格式 输入一行,包含一个正整数n. 输 ...
- Java判断回文数算法简单实现
好久没写java的代码了, 今天闲来无事写段java的代码,算是为新的一年磨磨刀,开个头,算法是Java判断回文数算法简单实现,基本思想是利用字符串对应位置比较,如果所有可能位置都满足要求,则输入的是 ...
- luogu1207双重回文数[usaco1.2]Dual Palindromes
题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做“回文数”.例如,12321就是一个回文数,而77778就不是.当然,回文数的首和尾都应是非零的,因此0220就不是回文数. 事实上 ...
- luogu10125回文数[noip1999 Day1 T1]
题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数 ...
- 洛谷 P1015 回文数 Label:续命模拟QAQ
题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数 ...
- 2016中国大学生程序设计竞赛(长春)-重现赛 1010Ugly Problem 回文数 模拟
Ugly Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...
- 回文数 第N个回文数
判断回文数还是不难,如果能转为字符串就更简单了. 如果是求第N个回文数呢. 12321是一个回文数,这里先考虑一半的情况. 回文数的个数其实是有规律的.如: 1位回文数: 9个 2位回文数: 9个 3 ...
- 合工大OJ 1331 回文数
Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数. 任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其和不是回文数, ...
随机推荐
- 'PostBuildEvent' failed with error code '1' 'Unspecified error'( PostBuildEvent”失败,错误代码为“1”。“未指定的错误” )
这种错误很坑,2年前遇到一次,现在有遇到了(主要记不得上次怎么解决了的) 主要在于js文件文件修改保存的时候得以ansi格式保存,不能以utf-8 http://files.cnblogs.com/f ...
- 前端必学库之bootstrap
想要成为一个全栈程序员,其实有很多技术线路.很多人说有了nodejs后,只学JAVASCRIPT就可以了.其实,会NODEJS后端开发,严格来说算是高级前端.就站长个人理解,后端的主流还是4P:jsp ...
- Socket缓冲区
1.由于可读状态是在对方写入数据后或socket关闭时才能出现,因此如果客户端和服务端都停留在read时,如果没有任何一方,向对方写入数据,这将会产生一个死锁. 2.此外,在本地接收操作发起之前,很可 ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(四)
MyEclipse超值折扣 限量 100 套! 立即开抢>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包的形 ...
- <youcengcibianli>
#include<stdio.h> #include<stdlib.h> #include<string.h> #define num 100 #define OK ...
- 将PS/2接口鼠标改造成USB接口鼠标
改造接线图 不是所有PS/2鼠标都可以改为USB鼠标的,可以改的PS/2鼠标的特征: A.早期PS/2鼠标电路板一般带有两块集成电路,(一块光电感应,一块按键或USB协议转换,和一只24M的晶体振荡器 ...
- WEB接口测试之Jmeter接口测试自动化 (二)
通过逐个录入的方式,好不容易将需要测试几十个接口的300多个测试用例录入sampler-http请求中,固定的测试环境跑起来也还 感觉良好.不料在新服务器环境中跑用例时,问题来了:修改参数维护脚本等成 ...
- 51Nod 1090: 3个数和为0
1090 3个数和为0 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等. ...
- ES中Module的使用
Module 1.ES6在语言标准的层面上,实现了模块功能,成为浏览器和服务器通用的模块解决方案,完全可以取代 CommonJS 和 AMD 规范,基本特点如下: 每一个模块只加载一次, 每一个JS只 ...
- Mysql_connect报告”No such file or directory”错误的解决方法
写了个php脚本单独执行mysql_connect(),发现错误信息居然是“No such file or directory"! 首先确定是mysql_connect()和mysql_pc ...