P2657 [SCOI2009] windy 数
文章目录
- 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 数相关推荐
- P2657 [SCOI2009]windy数
P2657 [SCOI2009]windy数 题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之间,包括A和B ...
- 洛谷 P2657 [SCOI2009] windy数 数位DP
大家觉得写还可以,可以点赞.收藏.关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录 P2657 [SCOI2009 ...
- 洛谷P2657 [SCOI2009]windy数
洛谷P2657 [SCOI2009]windy数 本题是一道数位DP 看程序应该能看懂 中心思想:把一个数拆成每一位来处理 代码: #include<bits/stdc++.h> usin ...
- P2657 [SCOI2009] windy 数(数位DP)
题目链接:[SCOI2009] windy 数 - 洛谷 这是一道需要考虑前导0的数位DP题,为什么需要考虑前导0呢?其实原因很简单,因为有条件限制我们相邻两个数的差,所以我们在进行数位DP时必须把前 ...
- Luogu P2657 [SCOI2009]windy数
https://www.luogu.org/problemnew/show/P2657 题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. w ...
- P2657 [SCOI2009]windy数 题解
博客园同步 原题链接 简要题意: 一个 相邻两个数字差的绝对值都 ≥2\geq 2≥2 且不含前导零 的数 被称为 "windy数".问从 aaa 到 bbb 的 "wi ...
- 数位dp入门题 洛谷P2657 [SCOI2009] windy 数
题干 传送门 windy 定义了一种 windy 数. 题目描述 不含前导零且相邻两个数字之差至少为 2的正整数被称为 windy 数.windy 想知道,在 a 和 b 之间,包括 a 和 b ,总 ...
- P2657 [SCOI2009]windy数(数位dp)
题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之间,包括A和B,总共有多少个windy数? 输入输出格式 输 ...
- BZOJ1026 || 洛谷P2657 [SCOI2009]windy数【数位DP】
Time Limit: 1 Sec Memory Limit: 162 MB Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. ...
- 洛谷 P2657 [SCOI2009] windy 数 (题解+代码)
题目传送门:https://www.luogu.com.cn/problem/P2657 题解: 数位dp 计算给定数字所有数位上的值 然后从高位到低位暴力枚举所有的情况 当前一个位置上限时,当前最大 ...
最新文章
- WordPress-基础设置之固定链接设置
- transform 遇上 position: fixed
- 电气:蒙特卡洛1000个风光场景并通过削减法|聚类法得到几个典型场景(matlab\python实现)
- ubuntu php pear_ubuntu下安装pear包(lynx和php-cli安装)
- 陈睿:架构设计之数据库拆分六大原则
- 两点(51Nod-1416)
- 创建服务factory和service方法的区别
- Activity.startManagingCursor方法
- hashCode 一致性hash 算法
- 【翻译】Windows下文件的命名
- python 迭代器的方法_python--魔法方法,属性和迭代器
- PDF文件保密和去除密码
- 计算机半小时后关机代码,电脑自动关机代码
- Tableau:仪表板操作
- phpmyadmin java_phpMyAdmin的配置
- 三维建模学习太难?业内前辈给你指点一下!
- HDU - 1242
- sqoop导入数据到hive
- 建土赛事——力学架构 下篇
- 网页设计期末课程大作业:基于HTML+CSS+JavaScript+Bootstrap制作响应式网站信息技术交流博客(7页)