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

Description

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

Input

  包含两个整数,A B。

Output

  一个整数

Sample Input

  【输入样例一】
1 10
  【输入样例二】
25 50

Sample Output

  【输出样例一】
9
  【输出样例二】
20

HINT

  【数据规模和约定】
  100%的数据,满足 1 <= A <= B <= 2000000000 。

Source

Solution

  设$f[i][j]$表示i位数且最高位为j的满足题意的数有多少个:

  $f[i][j] = \sum\limits_{|k - j| \geq {2}}^{9}f[i - 1][k]$

  查询时按照类前缀和的原理进行。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int num[11], f[11][10];
 4  
 5 int solve(int x)
 6 {
 7     int len, ans = 0;
 8     for(len = 0; x; x /= 10)
 9         num[len++] = x % 10;
10     for(int i = 0; i < len - 1; i++)
11         for(int j = 1; j < 10; j++)
12             ans += f[i][j];
13     for(int i = 1; i < num[len - 1]; i++)
14         ans += f[len - 1][i];
15     for(int i = len - 2; i > -1; i--)
16     {
17         for(int j = 0; j < num[i]; j++)
18             if(abs(j - num[i + 1]) >= 2) ans += f[i][j];
19         if(abs(num[i] - num[i + 1]) < 2) break;
20     }
21     return ans;
22 }
23  
24 int main()
25 {
26     int a, b;
27     scanf("%d%d", &a, &b);
28     for(int i = 0; i < 10; i++)
29         f[0][i] = 1;
30     for(int i = 1; i < 11; i++)
31         for(int j = 0; j < 10; j++)
32             for(int k = 0; k < 10; k++)
33                 if(abs(j - k) >= 2) f[i][j] += f[i - 1][k];
34     cout << solve(b + 1) - solve(a) << endl;
35     return 0;
36 }
View Code

转载于:https://www.cnblogs.com/CtrlCV/p/5430289.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257315.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL——快速定位相关的外键表

转载于:https://www.cnblogs.com/mingle/p/4506422.html

Linux安装glibc(升级版本)

2019独角兽企业重金招聘Python工程师标准>>> glibc下载地址&#xff1a;http://ftp.gnu.org/gnu/glibc/ 这里下载 glibc-2.15&#xff1a; http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz glibc-ports-2.15&#xff1a; http://ftp.gnu.org/gnu/glibc/glibc-ports…

定义列表的特点html,HTML的列表表格表单知识点

无序列表格式 有序列表格式第一项 …

【Fanvas技术解密】HTML5 canvas实现脏区重绘

先说明一下&#xff0c;fanvas是笔者在企鹅公司开发的&#xff0c;即将开源的flash转canvas工具。 脏区重绘(dirty rectangle)并不是一门新鲜的技术了&#xff0c;这在最早2D游戏诞生的时候就已经存在。 复杂的术语或概念就不多说&#xff0c;简单说&#xff0c;脏区重绘就是每…

html调用js里面的函数,html如何调用js函数

html调用js函数的方法&#xff1a;1、用控件本身进行调用&#xff1b;2、通过javascript中的时间控件定时执行&#xff1b;3、通过getElementById调用&#xff1b;4、通过document.getElementsByName调用。本文操作环境&#xff1a;Windows7系统、html5&&javascript1.8…

大部分人都会做错的经典JS闭包面试题

2019独角兽企业重金招聘Python工程师标准>>> 由工作中演变而来的面试题 JS中有几种函数 创建函数的几种方式 三个fun函数的关系是什么&#xff1f; 函数作用域链的问题 到底在调用哪个函数&#xff1f; 后话 转载于:https://my.oschina.net/u/3687565/blog/1549046

STM32片上Flash内存映射、页面大小、寄存器映射

转自&#xff1a;http://blog.chinaunix.net/uid-20617446-id-3847242.html 一、怎么看Flash大小 1.1 通过型号 型号会印在MCU表面&#xff0c;可以通过观察获得&#xff0c;我的是STM32F103RBT6(以下分析基于这个型号)&#xff0c;对照下图的STM32产品命名&#xff0c;可知STM…

如何设计实现一个地址反解析服务?

http://www.cnblogs.com/LBSer/p/4507829.html 一、什么是地址反解析 我们都知道手机定位服务&#xff0c;其本质是汇总各种信号得出一个经纬度坐标&#xff08;x,y&#xff09;&#xff08;具体定位原理可以参考&#xff1a;LBS定位技术、基于朴素贝叶斯的定位算法&#xff09…

html5 hr代码缩减比例,HTML HR size用法及代码示例

DOM HR size属性用于设置或返回元素的size属性的vlue。用法:它返回HR大小属性。hrobject.size用于设置HR大小属性。hrobject.size"value"属性值&#xff1a;value:它包含指定HR元素高度的像素值。返回值&#xff1a;它返回一个字符串值&#xff0c;该值代表HR元素的高…

MySQL Binlog Mixed模式记录成Row格式

背景&#xff1a; 一个简单的主从结构&#xff0c;主的binlog format是Mixed模式&#xff0c;在执行一条简单的导入语句时&#xff0c;通过mysqlbinlog导出发现记录的Binlog全部变成了Row的格式&#xff08;明明设置的是Mixed&#xff09;&#xff0c;现在就说说在什么情况下Bi…

html后台数据分类管理,细分数据.html

&#xfeff;细分数据$axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; };$axure.utils.getOtherPath function() { return resources/Other.html; };$axure.utils.getReloadPath function() { return resources/reload.html; };…

Get请求

写在前面的话 XMLHttpRequest对象的open方法的第一个参数为request-type,取值可以为get或post.本篇介绍get请求. get请求的目的,主要是为了获取数据.虽然get请求可以传递数据,但传递数据的目的是为了告诉服务器,给我们什么内容. 使用get请求时,参数都是随url进行传递的. 使用ge…

javaweb学习总结——Filter高级开发

在filter中可以得到代表用户请求和响应的request、response对象&#xff0c;因此在编程中可以使用Decorator(装饰器)模式对request、response对象进行包装&#xff0c;再把包装对象传给目标资源&#xff0c;从而实现一些特殊需求。 一、Decorator设计模式 1.1、Decorator设计模…

Android(java)学习笔记10:同步中的死锁问题以及线程通信问题

1. 同步弊端&#xff1a; &#xff08;1&#xff09;效率低 &#xff08;2&#xff09;如果出现了同步嵌套&#xff0c;就容易产生死锁问题 死锁问题及其代码 &#xff1a; &#xff08;1&#xff09;是指两个或者两个以上的线程在执行的过程中&#xff0c;因争夺资源产生的一种…

在html中三个图片切换,轻松搞定网页中的图片切换

生活中经常看到&#xff0c;像新浪等很多门户网站的首页都有滚动图片的展示&#xff0c;如下图所示&#xff1a;某网站首页滚动切换图片这样不但可以减少文字的单一、乏味&#xff0c;而且可以直观内容&#xff0c;更好的吸引用户。那在我们做软件系统时&#xff0c;是否也可以…

requirejs(shim)处理加载非AMD规范的js库

使用requirejs加载模块&#xff0c;模块的定义得遵守AMD规范&#xff0c;也即定义模块的时候使用如下函数定义模块: 1 define(function(){ 2 var private function(){ 3 console.log(私有方法...); 4 }; 5 return { 6 public:funct…

jQuery Validate 验证,校验规则写在控件中的具体例子

将校验规则写到控件中 <script src"../js/jquery.js" type"text/javascript"></script> <script src"../js/jquery.validate.js" type"text/javascript"></script> <script src"./js/jquery.metadata…

通过键盘上下键 JS事件,控制候选词的选择项

效果图 JS代码 //上下键 选择事件 searchBackgroud 为样式&#xff0c;只做标记&#xff0c;无实质样式&#xff0c;因为和其他样式不兼容&#xff0c;只能添加CSS$(document).keydown(function (event) {var upDownClickNum $("#SearchTips .searchBackgroud ").l…

Jmeter===Jmeter中使用CSV Data Set Config参数化不重复数据执行N遍(转)

Jmeter中使用CSV Data Set Config参数化不重复数据执行N遍 要求&#xff1a; 今天要测试上千条数据&#xff0c;且每条数据要求执行多次&#xff0c;&#xff08;模拟多用户多次抽奖&#xff09; 1.用户id有175个&#xff0c;且没有任何排序规则&#xff1b; 2.要求175个用户都…

计算机怎么更改用户头像像,Win10系统电脑账户头像怎么改成系统默认状态?

为了保护电脑的安全&#xff0c;我们可以设置登录账号密码&#xff0c;而账号的头像也是可以自行更换的。但是&#xff0c;某些时候&#xff0c;因为一些原因&#xff0c;我们需要将Win10系统账户的头像去掉&#xff0c;即改成默认状态。但是很多人都不清楚该怎么操作&#xff…