和诸位巨佬不同,蒟蒻如我,只能想到怎么统计不满足windy数条件的数

就是个爆搜

定义c[i][j][k]表示第i位且前一位为j,k表示是否满足条件

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int maxn=1e5+5;
 4 int tot,e[20];
 5 long long c[20][20][2];
 6 int a,b;
 7 template<class t>void red(t &x)
 8 {
 9     int w=1;
10     x=0;
11     char ch=getchar();
12     while(ch>'9'||ch<'0')
13     {
14         if(ch=='-')
15             w=-1;
16         ch=getchar();
17     }
18     while(ch>='0'&&ch<='9')
19     {
20         x=(x<<3)+(x<<1)+ch-'0';
21         ch=getchar();
22     }
23     x*=w;
24 }
25 void input()
26 {
27     freopen("input.txt","r",stdin);
28 }
29 void dv(int x)
30 {
31     tot=0;
32     while(x)
33     {
34         e[++tot]=x%10;
35         x/=10;
36     }
37     e[tot+1]=0;
38 }
39 long long dfs(int pos,bool limit,bool zero,bool dc,int pre)
40 {
41     if(pos==0)
42         return dc;
43     if(!limit&&c[pos][pre][dc]!=-1)
44         return c[pos][pre][dc];
45     int up=limit?e[pos]:9;
46     long long ans=0;
47     for(int i=0;i<=up;++i)
48         ans+=dfs(pos-1,limit&&(i==up),zero||i,dc||(abs(i-pre)<2&&zero),i);
49     if(!limit&&zero)
50         c[pos][pre][dc]=ans;
51     return ans;
52 }
53 long long solve(int x)
54 {
55     dv(x);
56     memset(c,-1,sizeof(c));
57     return dfs(tot,1,0,0,-1);
58 }
59 void read()
60 {
61     red(a);
62     red(b);
63 }
64 void work()
65 {
66     printf("%lld",b-a+1-solve(b)+solve(a-1));
67 }
68 int main()
69 {
70     input();
71     read();
72     work();
73     return 0;
74 }

View Code

转载于:https://www.cnblogs.com/Achensy/p/11002152.html

luoguP2657 [SCOI2009]windy数相关推荐

  1. BZOJ 1026 [SCOI2009]windy数

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

  2. bzoj:1026: [SCOI2009]windy数(数位dp)

    1026: [SCOI2009]windy数 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 7982  Solved: 3593 Descriptio ...

  3. P2657 [SCOI2009]windy数

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

  4. bzoj 1026: [SCOI2009]windy数(数位dp)

    1026: [SCOI2009]windy数 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 7688  Solved: 3470 [Submit][S ...

  5. [SCOI2009]windy数

    [SCOI2009]windy数 BZOJ luogu 数位dp入门题 复杂度:\(O(11×10×10)\) 详细见注释 #define ll long long #include<bits/ ...

  6. bzoj 1026 //1026: [SCOI2009]windy数

    bzoj 1026 //1026: [SCOI2009]windy数   //在线测评地址https://www.lydsy.com/JudgeOnline/problem.php?id=1026 / ...

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

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

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

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

  9. 洛谷P2657 [SCOI2009]windy数

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

最新文章

  1. flink checkpoint 恢复_Flink断点恢复机制
  2. 中国电梯市场产量规模与盈利趋势分析报告2022-2028年
  3. 程序员最害怕的5件事,你中招了吗?
  4. linux系统管理Linux系统实验,实验三 linux系统管理
  5. python进度条 pyqt_pyqt中的进度条没有正确更新以读取fi
  6. html tab键自动填充,HTML tabindex — TAB按键操作
  7. 24lc08 c语言源码,24LC08,24LC08 pdf中文资料,24LC08引脚图,24LC08电路-Datasheet-电子工程世界...
  8. Android WebView优化
  9. android rxbus封装,Android RxBus的使用
  10. 批量图片压缩、生成PDF文件及PDF文件压缩
  11. 如何在微信直接下载app?
  12. ESP32上手笔记 | 05 - 获取MPU6050数据进行姿态解算和展示(I2Cdev+MPU6050+Processing)
  13. 百度ai人体关键点识别
  14. Learning from Interpretable Analysis:Attention-Based Knowledge Tracing
  15. 【基础逻辑】对位乘法与升多项式子项根号——柯西不等式
  16. 基于JAVA旅游景区预约管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  17. python 六大数据类型
  18. Linux基本操作命令、Vim编辑器、Jenkins、Maven
  19. el-table树形结构的数据结构处理
  20. 正在连接172.16.1.54:9703...无法打开到主机的连接。 在端口 23: 连接失败

热门文章

  1. 编写MOSS自定义字段类型的小意外
  2. 提高vb -》excel数据的导入速度
  3. 用python绘制漂亮的图形-python如何画出漂亮的地图?
  4. python编程 pdf-Python书单推荐一波【内含PDF下载地址】
  5. python四大软件-PYPL 9月编程语言排行榜发布 Python一枝独秀
  6. python1000个常用代码-30个Python常用极简代码,拿走就用
  7. python如何读写文件-Python读写文件
  8. 零基础自学python的app-零基础转行Python,为什么有些人自学几天就放弃了?
  9. python爬虫教程pdf-Python 爬虫:把廖雪峰教程转换成 PDF 电子书
  10. 网页爬虫 python-python爬虫——爬取网页的中文