文章目录

  • ResultResultResult
  • HyperlinkHyperlinkHyperlink
  • DescritpionDescritpionDescritpion
  • SolutionSolutionSolution
  • CodeCodeCode

ResultResultResult


HyperlinkHyperlinkHyperlink

https://www.luogu.com.cn/problem/P2657


DescritpionDescritpionDescritpion

定义不含前导0且任意相邻两位的差至少为2的数为windywindywindy数
求[L,R][L,R][L,R]的windywindywindy数个数

数据范围:
L,R≤109L,R\leq 10^9L,R≤109


SolutionSolutionSolution

设frest,lastf_{rest,last}frest,last​表示剩余restrestrest位,上一位填lastlastlast的windywindywindy数个数
考虑不含前导0带来的影响转移即可


CodeCodeCode

#include<cctype>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
using namespace std;LL L,R;
int a[15],m;
LL f[15][10];
inline LL read()
{char c;LL d=1,f=0;while(c=getchar(),!isdigit(c)) if(c=='-') d=-1;f=(f<<3)+(f<<1)+c-48;while(c=getchar(),isdigit(c)) f=(f<<3)+(f<<1)+c-48;return d*f;
}
inline LL dfs(int rest,int last,bool lead,bool limit)
{if(rest==0) return 1;if(lead&&limit==0&&f[rest][last]!=-1) return f[rest][last];int cancse=limit?a[rest]:9;LL res=0;for(register int i=0;i<=cancse;i++){if(abs(i-last)<2) continue;res+=dfs(rest-1,(lead||i)?i:-233,lead||i,limit&&i==cancse);}if(lead&&limit==0) f[rest][last]=res;return res;
}
inline LL solve(LL x)
{if(x<10) return x+1;m=0;while(x) a[++m]=x%10,x/=10;memset(f,-1,sizeof(f));return dfs(m,-233,0,1);
}
signed main()
{L=read();R=read();printf("%lld",solve(R)-solve(L-1));
}

P2657 [SCOI2009] windy 数相关推荐

  1. P2657 [SCOI2009]windy数

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

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

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

  3. 洛谷P2657 [SCOI2009]windy数

    洛谷P2657 [SCOI2009]windy数 本题是一道数位DP 看程序应该能看懂 中心思想:把一个数拆成每一位来处理 代码: #include<bits/stdc++.h> usin ...

  4. P2657 [SCOI2009] windy 数(数位DP)

    题目链接:[SCOI2009] windy 数 - 洛谷 这是一道需要考虑前导0的数位DP题,为什么需要考虑前导0呢?其实原因很简单,因为有条件限制我们相邻两个数的差,所以我们在进行数位DP时必须把前 ...

  5. Luogu P2657 [SCOI2009]windy数

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

  6. P2657 [SCOI2009]windy数 题解

    博客园同步 原题链接 简要题意: 一个 相邻两个数字差的绝对值都 ≥2\geq 2≥2 且不含前导零 的数 被称为 "windy数".问从 aaa 到 bbb 的 "wi ...

  7. 数位dp入门题 洛谷P2657 [SCOI2009] windy 数

    题干 传送门 windy 定义了一种 windy 数. 题目描述 不含前导零且相邻两个数字之差至少为 2的正整数被称为 windy 数.windy 想知道,在 a 和 b 之间,包括 a 和 b ,总 ...

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

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

  9. BZOJ1026 || 洛谷P2657 [SCOI2009]windy数【数位DP】

    Time Limit: 1 Sec Memory Limit: 162 MB Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. ...

  10. 洛谷 P2657 [SCOI2009] windy 数 (题解+代码)

    题目传送门:https://www.luogu.com.cn/problem/P2657 题解: 数位dp 计算给定数字所有数位上的值 然后从高位到低位暴力枚举所有的情况 当前一个位置上限时,当前最大 ...

最新文章

  1. WordPress-基础设置之固定链接设置
  2. transform 遇上 position: fixed
  3. 电气:蒙特卡洛1000个风光场景并通过削减法|聚类法得到几个典型场景(matlab\python实现)
  4. ubuntu php pear_ubuntu下安装pear包(lynx和php-cli安装)
  5. 陈睿:架构设计之数据库拆分六大原则
  6. 两点(51Nod-1416)
  7. 创建服务factory和service方法的区别
  8. Activity.startManagingCursor方法
  9. hashCode 一致性hash 算法
  10. 【翻译】Windows下文件的命名
  11. python 迭代器的方法_python--魔法方法,属性和迭代器
  12. PDF文件保密和去除密码
  13. 计算机半小时后关机代码,电脑自动关机代码
  14. Tableau:仪表板操作
  15. phpmyadmin java_phpMyAdmin的配置
  16. 三维建模学习太难?业内前辈给你指点一下!
  17. HDU - 1242
  18. sqoop导入数据到hive
  19. 建土赛事——力学架构 下篇
  20. 网页设计期末课程大作业:基于HTML+CSS+JavaScript+Bootstrap制作响应式网站信息技术交流博客(7页)

热门文章

  1. 视频 | 新基建:模式与路径 - 黄奇帆 王建宙 巴曙松 凌克 吴明辉 周伯文
  2. 抖音营销的6种方法5个套路
  3. 封神台之萌新也能找CMS漏洞整理记录
  4. WPF 仿安卓手势解锁 图案解锁
  5. brew 一直等待_等待幸福作文小学生5篇2020年
  6. 2019年牛客多校第一场B题 Integration 定积分 裂项相消
  7. 【第32篇】SWA:平均权重导致更广泛的最优和更好的泛化
  8. 应届毕业生身份有什么用?应注意事项?
  9. Python实时下载B站直播间视频(M3U8视频流)
  10. 两年数据对比柱形图_如何用excel制作漂亮的图表——柱形图篇