bzoj4693: 雪中送温暖
Description
Input
Output
打表可知当且仅当 对于每个二进制位,至多有一维坐标为1 时为红色,于是可以从高位到低位进行数位dp,记录每一维坐标已确定部分与Li,Ri的关系($x=L_i || x=R_i || L_i<x<R_i$)
时间复杂度$O(T3^klog(max{R_i}))$
#include<cstdio>
#include<cstring>
typedef long long i64;
const int P=;
int T,n,t;
i64 l[],r[];
int pw3[],ls[],rs[],eq[],peq[];
int f[][],*f1,*f0;
void inc(int&a,int b){b+=a-P;a=b+(b>>&P);}
void dfs(int w,int d,int S,int S2){
if(w==-)return inc(f0[S2],f1[S]);
S*=,S2*=;
if(!peq[w]){
if(!ls[w])dfs(w-,d,S,S2);
dfs(w-,d,S+,S2++rs[w]);
dfs(w-,d,S+,S2+);
if(!d){
dfs(w-,,S,S2+(ls[w]^)*);
if(rs[w])dfs(w-,,S+,S2+);
dfs(w-,,S+,S2+);
}
}else if(!eq[w]){
dfs(w-,d,S,S2);
if(!d)dfs(w-,,S,S2+);
}else if(d+rs[w]<=)dfs(w-,d+rs[w],S,S2);
}
int main(){
for(int i=pw3[]=;i<;++i)pw3[i]=pw3[i-]*;
f[][]=;
for(scanf("%d",&T);T;--T){
scanf("%d",&n);
for(int i=;i<n;++i)scanf("%lld",l+i),--l[i];
for(int i=;i<n;++i)scanf("%lld",r+i),--r[i];
for(t=;t>=;--t){
f1=f[t+];
memset(f0=f[t],,sizeof(int)*pw3[n]);
for(int i=;i<n;++i){
ls[i]=l[i]>>t&;
eq[i]=!((l[i]^r[i])>>t);
peq[i]=!((l[i]^r[i])>>t+);
rs[i]=r[i]>>t&;
}
dfs(n-,,,);
}
int ans=;
for(int i=;i<pw3[n];++i)inc(ans,f0[i]);
printf("%d\n",ans);
}
return ;
}
bzoj4693: 雪中送温暖的更多相关文章
- 某次送温暖考试的 c题
题目大意: 给定n个点的无根树,树上每个点都有一个非负的点权. 树上的路径的价值定义为树上路径的点权和-树上路径的点权最大值; 现在给定一个参数P询问有多少条路径的价值是P的倍数(注意单点也算路径,路 ...
- Contest-hunter 暑假送温暖 SRM08
01-07都没写...然后突然来写貌似有点突兀啊...不管了,难得前排记录一下... 吐槽一下赛制...不得不说很强... cf 套oi...很创新...不过还是兹磁ACM或者CF A-1 数据才2& ...
- Contest-hunter 暑假送温暖 SRM01
一直找不到好的题去做...于是想到了srm...回来补题...QAQ 从srm01补起 A 题意:n个数,排成一列,刚开始都是1,如果左右相等就可以合并,问最后的数列长什么样. 思路:比赛的时候直接敲 ...
- golang1.13中重要的新特新
本文索引 语言变化 数字字面量 越界索引报错的完善 工具链改进 GOPROXY GOSUMDB GOPRIVATE 标准库的新功能 判断变量是否为0值 错误处理的革新 Unwrap Is As gol ...
- 经典创意slogan大全
一句好的广告语,能强烈的激发人的感情,产生心理认同感.对于广告人来说,无论走到哪里,最敏感的就是广告语.一句广告语,可能只有短短几个字或一两句话,却是一个品牌的精华所在.能不能第一时间吸引受众眼球,抓 ...
- jsp+tomcat+mysql+sevlet+javabean配置过程
在配置jsp开发环境的过程中会碰到不少问题,感谢网上的许多前辈的经验总结,作者cl41的JSP连接Mysql数据库攻略和作者Saulzy的MySQL学习笔记等文章对我来说简直是雪中送碳,为了帮助象我一 ...
- 从Image Caption Generation理解深度学习
0. 前面的话 建丁让我写一篇深度学习相关小文章,目标读者是国内的开发者.刚接到这个任务时我是颇为忐忑的,写文章要讲究厚积薄发,如果“水之积也不厚”,“则其负大舟也无力”.因为我自知水平很有限,又不是 ...
- THUWC逛街记
1/28 这次打算去THUWC划个水,就定了1/29中午的飞机.同校有几个同学去PKUWC,求稳搭今天的飞机.中午时候听说今天飞长沙的飞机全都取消了,明天有没有也不好说( 事实证明29号有飞机:( ) ...
- [转]一个普通IT人的十年回顾---金旭亮
金旭亮老师十年体会,很有收获.转自网络. 金旭亮于1989年与超级解霸的开发者梁肇新同时迈入广西大学的校门,却走了一条与其不同的路. 1994年起开始自学计算机专业本科课程,并开始编程,从未间断,迄今 ...
随机推荐
- 大数据技术Hadoop面试题
1. 下面哪个程序负责 HDFS 数据存储.答案C datanode a)NameNodeb)Jobtrackerc)Datanode d)secondaryNameNodee)tasktracker ...
- MyEclipse移动开发教程:设置所需配置的iOS应用(四)
MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] 三.创建配置文件 Provisioning profiles授权文件应用程序在iOS设备上安装并运 ...
- 由pg_xlogdump统计信息想到的问题
最近深入理解了Checkpoint的相关逻辑,再来看WAL日志的一些设置,又有了新的收获. 1.回顾pg_xlogdump出来的wal日志信息: 2.wal中FPI的占比很高问题分析: 3.重申ful ...
- Linux环境下 多线程下载 (Python 实现版)
本文是多年前学习编程时参照一个网友程序的基础之上改写的, 采用Python语音编写, 多线程下载功能, 可以有效提高Linux下原有下载工具中的一些不足,以下给出具体代码. #!/usr/bin/py ...
- adb安装启动Touch校正软件
/********************************************************************************* * adb安装启动Touch校正软 ...
- VC++ 6.0 C8051F340 USB 通信 CAN 数据解析
// HelloWorld.cpp : Defines the entry point for the console application. // /*********************** ...
- matrix-gui-browser-2.0 matrix-browser Qt QWebView hacking
/* * matrix-browser * * Simple web viewer used by Matrix application launcher * * Copyright (C) 2011 ...
- [LeetCode&Python] Problem 682. Baseball Game
You're now a baseball game point recorder. Given a list of strings, each string can be one of the 4 ...
- 20155304 2016-2017-2 《Java程序设计》第九周学习总结
20155304 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC ...
- Chrome在Ubuntu中缺少依赖项,无法安装
在Ubuntu 13.04中,安装chrome会报下面这个错误(不知是不是因为我没有更新的原因:( ): 也就是缺少名为libxss1的包. 解决办法,当然可以很简单的去找libxss1这个包下载, ...