BZOJ & luogu

看到某大佬AC,本蒟蒻也决定学习一下玄学的数位$dp$

(以上是今年3月写的话(叫我鸽神$qwq$))


思路:数位$DP$

提交:2次

题解:(见代码)

#include<cstdio>
#include<iostream>
#include<cstring>
#define R register int
using namespace std;
int a,b,f[12][10],num[11];
//f[i][j]搜到第i位,前一位是j,且没有上界标记的方案数
inline int max(int a,int b){return a>b?a:b;}
inline int abs(int x){return x>0?x:-x;}
int dfs(int l,bool ul,bool ck,int lst) {//l位数,ul上界标记,ck前导零标记,lst上一位 if(!l) return 1;if(!ul&&(~f[l][lst])) return f[l][lst];//记忆化 R mx=ul?num[l]:9,cnt=0;//mx是上界 for(R i=0;i<=mx;++i) {if(abs(lst-i)<2) continue;//差小于2 if(ck&&i==0) cnt+=dfs(l-1,ul&&i==mx,true,-2);//若一直是前导零 else cnt+=dfs(l-1,ul&&i==mx,false,i); } return ul||ck?cnt:f[l][lst]=cnt;
}
inline int solve(int x) {R len=0; memset(f,0xff,sizeof(f));for(;x;x/=10) num[++len]=x%10;//分解每一位return dfs(len,true,true,-2);
}
signed main() {scanf("%d%d",&a,&b);printf("%d\n",solve(b)-solve(a-1));//前缀和减一下
}


2019.07.18

转载于:https://www.cnblogs.com/Jackpei/p/10549602.html

题解 BZOJ1026 luogu P2657 [SCOI2009]windy数 数位DP相关推荐

  1. 洛谷 P2657 [SCOI2009] windy数 数位DP

    大家觉得写还可以,可以点赞.收藏.关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录 P2657 [SCOI2009 ...

  2. P2657 [SCOI2009]windy数(数位dp)

    题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之间,包括A和B,总共有多少个windy数? 输入输出格式 输 ...

  3. P2657 [SCOI2009]windy数 数位dp入门

    参考了题解,理解仍然还不够透彻 #include<bits/stdc++.h> using namespace std; const int N=550; const int maxn=1 ...

  4. BZOJ1026 [SCOI2009]windy数 数位dp

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

  5. Luogu P2657 [SCOI2009]windy数

    https://www.luogu.org/problemnew/show/P2657 题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. w ...

  6. 【bzoj1026】[SCOI2009]windy数 数位dp

    题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? 输入 包含两个整数 ...

  7. [BZOJ1026] [SCOI2009] windy数 (数位dp)

    Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? In ...

  8. BZOJ1026: [SCOI2009]windy数(数位dp)

    题意 题目链接 Sol 很zz的数位dp $f[i][j]$表示第$i$位,前一位是$j$的方案数 转移的时候枚举一下是否相同即可 注意当lim达到上界的时候是不能记忆化的! /**/ #includ ...

  9. bzoj 1026: [SCOI2009]windy数 数位DP算法笔记

    数位DP入门题之一 也是我所做的第一道数位DP题目 (其实很久以前就遇到过 感觉实现太难没写) 数位DP题目貌似多半是问从L到R内有多少个数满足某些限制条件 只要出题人不刻意去卡多一个$log$什么的 ...

最新文章

  1. 零基础Java学习之继承
  2. 学习《CSS选择器Level-4》不完全版
  3. 奇妙的棋盘(建图+搜索)
  4. 前端如何实现音乐盒胶盘的转动_干货来袭!web前端开发工程师必看之如何使用CSS3实现瀑布流效果?...
  5. network怎么断点调试_Windows 网络编程:调试 API
  6. Leetcode--621. 任务调度器
  7. java 图片分段上传_java 分段读取文件 并通过HTTP上传
  8. 人间值得!支付宝宣布平台上登记器官捐献人数:90后占比超一半
  9. centos 6.5上安装php7,centos 6.5 编译安装PHP7
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的在线商城系统
  11. (六):关于全局config配置
  12. 根据模板提示,加入元素,修改CSS
  13. 基于UKey数字证书实现身份认证
  14. Java 飞翔的小鸟小游戏开发 完全源码 + 论文文档
  15. Linux虚拟机之间如何添加互信
  16. [SAP ABAP开发技术总结]增强Enhancement
  17. jquery easyui 全部图标
  18. 【2022最全最细】Docker 从入门到精通(建议收藏的教程)
  19. 电脑连接信捷PLC方法
  20. Linux下Samba服务器配置,已成功

热门文章

  1. 喂,315吗?我花299元买到一只人工智障!
  2. 苹果3月新品发布会one more thing曝光:或许就是iPhone SE 2
  3. 使用Python分析网易云歌曲评论信息,我发现了这些有趣的规律
  4. 串口的输出设置【原创】
  5. 轻松做性能测试,月入3万的主流测试工具大揭秘
  6. 谷歌测试工程师分享前端性能监控利器Performance
  7. 《运营之光》-- 学习笔记(二)
  8. C语言怎么定义001为int,C语言基础-01-基本数据类型
  9. python golang 小工具_使用Go语言简单模拟Python的生成器
  10. 我的一些学习经验:视频流媒体方面