题解

数位dp,永远的痛…
求A与L答案的最小值的最大值
dp[pos][f1][f2][f3][f4]表示当前第pos位,A的上下边界的状况,J的上下边界的状况



#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF=INT_MAX;
int n,m,k;
int dp[40][2][2][2][2];
int l1,l2,r1,r2;int dfs(int pos,int f1,int f2,int f3,int f4){//pos表示当前位置//f1表示A的下界是否到达了边界//f2表示A的上界是否到达了边界//f3表示J的下界是否到达了边界//f4表示J的上界是否到达了边界if(pos<0)return 0;if(dp[pos][f1][f2][f3][f4]!=-1)return dp[pos][f1][f2][f3][f4];//求出A与L的答案的边界 边界能扩就扩int mi=f1? (l1>>pos)&1:0;//最小值int mx=f2? (r1>>pos)&1:1;//最大值int Mi=f3? (l2>>pos)&1:0;int Mx=f4? (r2>>pos)&1:1;int ans=0;for (int i = mi; i <= mx; ++i) {//A的选择int u=INF;for (int j = Mi; j <= Mx; ++j) {//J的选择int v=dfs(pos-1,f1 && i==mi,f2 && i==mx,f3 && j==Mi,f4 && j==Mx);if(i^j) v+=(1<<pos);//如果不一样 当前位置置1u=min(v,u);}ans=max(ans,u);}return dp[pos][f1][f2][f3][f4]=ans;
}int main(){ios::sync_with_stdio(0);int T;cin>>T;for (int cs = 1; cs <= T; ++cs) {memset(dp, -1, sizeof(dp));cin>>l1>>r1>>l2>>r2;printf("Case #%d: %d\n",cs,dfs(31,1,1,1,1));//最高位31}return 0;
}

BC #38 / HDU5208 Where is Bob · 数位dp相关推荐

  1. 【poj3208-Apocalypse Someday】数位DP

    题意:问你在所有包含666的数中,第n大的是多少.(1 ≤ n ≤ 50,000,000) .开头几个是666, 1666, 2666, 3666, 4666, 5666- 题解: 这题可以用AC自动 ...

  2. ACM之路(16)—— 数位DP

    题目就是kuangbin的数位DP. 先讲C题,不要62,差不多就是一个模板题.要注意的是按位来的话,光一个pos是不够的,还需要一维来记录当前位置是什么数字,这样才能防止同一个pos不同数字的dp值 ...

  3. 数位dp 的简单入门

    时间紧张,就不讲那么详细了. 之前一直被深搜代码误解,以为数位dp 其实就是记忆化深搜...(虽说爆搜确实很舒服而且还好想) 但是后来发现数位dp 的标准格式其实是 预处理 + dp ...... 数 ...

  4. 数位dp 记忆化搜索java_hdu 5787 数位dp,记忆化搜索

    题意:求区间[l,r]内有多少个数符合,这个数的任意的相邻k位数(digits),这k个数都两两不相等 l,r范围是1~1e18,k是2~5 思路:数位DP,因为K<=5,我们最多需要保存下来当 ...

  5. Hdu 2089-不要62 数位dp

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=2089 不要62 Time Limit: 1000/1000 MS (Java/Others)    Me ...

  6. bzoj1833: [ZJOI2010]count 数字计数(数位DP+记忆化搜索)

    1833: [ZJOI2010]count 数字计数 题目:传送门 题解: 今天是躲不开各种恶心DP了??? %爆靖大佬啊!!! 据说是数位DP裸题...emmm学吧学吧 感觉记忆化搜索特别强: 定义 ...

  7. BZOJ1026 [SCOI2009]windy数 数位dp

    欢迎访问~原文出处--博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1026 题目概括 求区间[A,B]中有多少数满足下面的条件. 条件:该数相邻两位之差不小于2. 题解 ...

  8. 数位dp模板 [dp][数位dp]

    现在才想到要学数位dp,我是不是很弱 答案是肯定的 以一道自己瞎掰的题为模板 1 //题: 2 //输入数字n 3 //从0枚举到n,计算这n+1个数中含有两位数a的数的个数 4 //如12930含有 ...

  9. 牛客练习赛34 E little w and Digital Root(数位dp)

    title: 牛客练习赛34 E little w and Digital Root(数位dp) date: 2018-12-17 22:38:37 tags: 数位dp categories:ACM ...

  10. bzoj 3131 [Sdoi2013]淘金(数位dp)

    题目描述 小Z在玩一个叫做<淘金者>的游戏.游戏的世界是一个二维坐标.X轴.Y轴坐标范围均为1..N.初始的时候,所有的整数坐标点上均有一块金子,共N*N块. 一阵风吹过,金子的位置发生了 ...

最新文章

  1. java 故障排查_目前最全的 Java 服务问题排查套路
  2. 周志华讲座---关于人工智能---科普性质---天地工学讲坛2017.11.30
  3. linux进程授权,一个linux小程序的免授权或通用授权
  4. shell脚本小技巧
  5. 刘强东凌晨发内部信:取消底薪不是为了降低工资
  6. odoo10参考系列--QWeb
  7. ModBus通信协议的【Modbus RTU 协议使用汇总】
  8. 百度AI输入法发布全感官输入2.0版本,语音技术取得世界级突破...
  9. 人间不值得。在既定的规则面前,除了遵守,还能有什么?
  10. 数据库语言,转载自:红黑联盟
  11. 微信小程序tarBar使用
  12. 史上官场吃喝风:与送礼一样成为通用的规则
  13. 2021-06-02-IPFS私有网络搭建
  14. php安全开发正则表达式,动态网页制作PHP常用的正则表达式
  15. 算法笔记(六)多尺度特征融合之FPN/PANet
  16. python之NetworkX的使用
  17. python高级算法与数据结构:“你如何压缩一部英文著作”,一道来自大厂的真实面试题
  18. 5.20,福利一波,用文字拼一个自己最爱的人
  19. 短信java_Java发送手机短信(附代码和解析,亲测有效,简便易操作)
  20. 第7期——AP上线过程

热门文章

  1. 3.5 Python 实例4-文本进度条
  2. [干货分享]硬件测试快速入门你必须了解的知识!
  3. 一本通 3.1 例 1」黑暗城堡
  4. ​深度:50+中老年健身运动需求升级,老年健身房能否成为下一个线下消费入口?
  5. 目标检测 | 解决小目标检测!多尺度方法汇总
  6. 淘宝/天猫按关键字搜索淘宝商品 API 返回值说明
  7. c语言flappy bird编程,C语言实现Flappy Bird小游戏
  8. dwf是什么格式文件
  9. 计算机是好是坏英语作文,电脑游戏是好还是坏英语作文
  10. python批量爬取校花网图片