[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,一经查实,立即删除!

相关文章

JQuery ajax()实例

前端页面&#xff1a; <!doctype html><html><head><meta charset"utf-8"><title>搜索</title></head> <body><div class"zgz">请输入(A-Z):<input type"text" value"GET"&…

黑马数据库html阶段考试,黑马web阶段web试题学生版.docx

Web 阶段 Web 试题1. 动态网站的开发技术有 (A)JSPHTMLCSSJavaScript 下面哪个请求头信息可以实现防盗链 (C)LocationRefreshRefererIf-Modified-Since在Web应用程序的文件与目录结构中&#xff0c;是放置在(A )WEB-INF 目录conf 目录lib 目录classes 目录下面哪一个指明向客户…

学生信息管理系统中遇到的问题解析

项目概述&#xff1a;做一个简单的学生信息管理系统 要求&#xff1a;学生信息的增删查改&#xff0c;成绩的增删。自动生成的编号。 工具&#xff1a;微软企业库与MiniUI 遇到的问题与解决方法&#xff1a;&#xff08;前面的博文也有类似的问题和解决方法&#xff0c;这里不再…

简单地使用线程之一:使用异步编程模型

.NetFramework的异步编程模型从本质上来说是使用线程池来完成异步的任务&#xff0c;异步委托、HttpWebRequest等都使用了异步模型。 这里我们使用异步委托来说明异步编程模型。 首先&#xff0c;我们来明确一下&#xff0c;对于多线程来说&#xff0c;我们需要关注哪些问题。 …

ShowType=0,交换机命令showinterfacestype0/port_#switchport|trunk用于显 - 信管网

交换机命令show interfaces type0/port_# switchport|trunk用于显示中继连接的配置情况&#xff0c;下面是显示例子&#xff1a;2950#show interface fastEthernet0/1 switchportName: fa0/1Switchport: EnabledAdministrative mode: trunkOperational Mode: trunkAdministrati…

SQL SERVER学习笔记(二)数据库管理

第二部分&#xff1a;数据库管理 单词记忆&#xff1a;transact&#xff1a;处理 create&#xff1a;创建 execute&#xff1a;执行、完成 一、 SQL Server的特性 1、 安装简便&#xff1a;为了便于安装、使用和管理&#xff0c;SQL Server2000提供了一组管理和开发工具。 …

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的列表表格表单知识点

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

Javascript 获取url参数,hash值 ,cookie

/*** 获取请求参数* param key* returns {*}*/ function getRequestParameter(key){var params getRequestParameters();return params[key]; }/*** 获取请求参数列表* returns {{}}*/ function getRequestParameters(){var arr (location.search || "").replace(/…

C# 中使用 ThoughtWorks.QRCode.dll 生成指定尺寸和边框宽度的二维码

本文介绍在 C# 中使用 ThoughtWorks.QRCode.dll 生成指定尺寸和边框宽度的二维码。网上文章大多只是简单介绍内置参数的设置&#xff0c;根据我的使用目的&#xff0c;增加了自定义目标二维码图片尺寸和白边边框。有需要的朋友们可以试一下&#xff0c;如有bug欢迎指正。 首先&…

html设置百度协议,网站HTML结构SEO要求说明(含移动站)

网页结构一、网页中主体结构标签一一对应。网页头部区域网页底部区域网页边框区域网页导航区域网页章节、页眉、页脚详情页文章区域详情页作者信息详情页中文章的发布日期列表页中文章列表区域二、其他说明1、首页head中标注Meta标签协议&#xff0c;标识对应的网页浏览&#x…

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

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

javascript 学习教程

1&#xff0c;JavaScript 是一种轻量级的编程语言&#xff0c;是可插入 HTML 页面的编程代码。 2,以<script>标签开始&#xff0c;以</script>标签结束。 3,引用放在外部文件的扩展名为.js的脚本文件 <script src"myScript.js"></script> 4&…

我国非按劳分配收入

我国现阶段非按劳分配收入探讨 我国社会主义初级阶段的个人消费品分配&#xff0c;是通过多种分配方式实现的。除了占主体地位的按劳分配方式之外&#xff0c;还存在许多种类的非按劳分配方式。因此&#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元素的高…