luoguP2657 [SCOI2009]windy数
和诸位巨佬不同,蒟蒻如我,只能想到怎么统计不满足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数相关推荐
- BZOJ 1026 [SCOI2009]windy数
1026: [SCOI2009]windy数 Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间 ...
- bzoj:1026: [SCOI2009]windy数(数位dp)
1026: [SCOI2009]windy数 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 7982 Solved: 3593 Descriptio ...
- P2657 [SCOI2009]windy数
P2657 [SCOI2009]windy数 题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之间,包括A和B ...
- bzoj 1026: [SCOI2009]windy数(数位dp)
1026: [SCOI2009]windy数 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 7688 Solved: 3470 [Submit][S ...
- [SCOI2009]windy数
[SCOI2009]windy数 BZOJ luogu 数位dp入门题 复杂度:\(O(11×10×10)\) 详细见注释 #define ll long long #include<bits/ ...
- bzoj 1026 //1026: [SCOI2009]windy数
bzoj 1026 //1026: [SCOI2009]windy数 //在线测评地址https://www.lydsy.com/JudgeOnline/problem.php?id=1026 / ...
- P2657 [SCOI2009] windy 数(数位DP)
题目链接:[SCOI2009] windy 数 - 洛谷 这是一道需要考虑前导0的数位DP题,为什么需要考虑前导0呢?其实原因很简单,因为有条件限制我们相邻两个数的差,所以我们在进行数位DP时必须把前 ...
- 洛谷 P2657 [SCOI2009] windy数 数位DP
大家觉得写还可以,可以点赞.收藏.关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录 P2657 [SCOI2009 ...
- 洛谷P2657 [SCOI2009]windy数
洛谷P2657 [SCOI2009]windy数 本题是一道数位DP 看程序应该能看懂 中心思想:把一个数拆成每一位来处理 代码: #include<bits/stdc++.h> usin ...
最新文章
- flink checkpoint 恢复_Flink断点恢复机制
- 中国电梯市场产量规模与盈利趋势分析报告2022-2028年
- 程序员最害怕的5件事,你中招了吗?
- linux系统管理Linux系统实验,实验三 linux系统管理
- python进度条 pyqt_pyqt中的进度条没有正确更新以读取fi
- html tab键自动填充,HTML tabindex — TAB按键操作
- 24lc08 c语言源码,24LC08,24LC08 pdf中文资料,24LC08引脚图,24LC08电路-Datasheet-电子工程世界...
- Android WebView优化
- android rxbus封装,Android RxBus的使用
- 批量图片压缩、生成PDF文件及PDF文件压缩
- 如何在微信直接下载app?
- ESP32上手笔记 | 05 - 获取MPU6050数据进行姿态解算和展示(I2Cdev+MPU6050+Processing)
- 百度ai人体关键点识别
- Learning from Interpretable Analysis:Attention-Based Knowledge Tracing
- 【基础逻辑】对位乘法与升多项式子项根号——柯西不等式
- 基于JAVA旅游景区预约管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
- python 六大数据类型
- Linux基本操作命令、Vim编辑器、Jenkins、Maven
- el-table树形结构的数据结构处理
- 正在连接172.16.1.54:9703...无法打开到主机的连接。 在端口 23: 连接失败
热门文章
- 编写MOSS自定义字段类型的小意外
- 提高vb -》excel数据的导入速度
- 用python绘制漂亮的图形-python如何画出漂亮的地图?
- python编程 pdf-Python书单推荐一波【内含PDF下载地址】
- python四大软件-PYPL 9月编程语言排行榜发布 Python一枝独秀
- python1000个常用代码-30个Python常用极简代码,拿走就用
- python如何读写文件-Python读写文件
- 零基础自学python的app-零基础转行Python,为什么有些人自学几天就放弃了?
- python爬虫教程pdf-Python 爬虫:把廖雪峰教程转换成 PDF 电子书
- 网页爬虫 python-python爬虫——爬取网页的中文