BZOJ1026_windy数_KEY
数位DP,其实只要求1~A-1和1~B就可以了。两数相减即为答案。
考虑怎们求1~A。
设f[i][j]表示到第i位,为j的windy数总数。
由前一位差值大于1的方程转移。
但是统计答案要分类讨论。
首先设所求数的位数为len。
1~len-1首先加入答案。
第len位的数-1也可以直接统计入答案。
统计每一位时,枚举当前位为j(<a[i]),与上一位比较。
j=1时,ans++。
code:
/**************************************************************
Problem: 1026
User: yekehe
Language: C++
Result: Accepted
Time:40 ms
Memory:824 kb
****************************************************************/ #include <cstdio>
#include <algorithm>
using namespace std; long long A,B,f[][]; long long a[];
long long solve(long long x)
{
if(!x)return ;
long long len=,ans=;
while(x)a[++len]=x%,x/=;
for(int i=;i<len;i++)
for(int j=;j<;j++)
ans+=f[i][j];
for(int i=;i<a[len];i++)ans+=f[len][i];
for(int i=len-;i;i--){
for(int j=;j<a[i];j++)
if(abs(j-a[i+])>)ans+=f[i][j];
if(abs(a[i]-a[i+])<)break;
if(i==)ans++;
}
return ans;
} int main()
{
scanf("%lld%lld",&A,&B);
for(int i=;i<=;i++)f[][i]=;
for(int i=;i<=;i++)
for(int j=;j<=;j++)
for(int k=;k<=;k++)
if(abs(j-k)>)f[i][j]+=f[i-][k];
printf("%lld",solve(B)-solve(A-));
return ;
}
BZOJ1026_windy数_KEY的更多相关文章
- 一文带你了解elasticsearch
一文带你了解elasticsearch cxf2102100人评论160人阅读2019-07-02 21:31:36 elasticsearch es基本概念 es术语介绍 文档Document ...
- BZOJ2120_数颜色_KEY
题目传送门 裸的带修莫队. 在Sort时如果左右区间都在同一块中,就按询问的修改的先后Sort. 对于每次查询判断向前或向后修改. 当size为N*2/3时据说是最优.O(N^(3/5)). code ...
- Linux上如何查看物理CPU个数,核数,线程数
首先,看看什么是超线程概念 超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的 ...
- 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)
转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...
- 数塔问题(DP算法)自底向上计算最大值
Input 输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有个i个整数 ...
- 统计iOS项目的总代码行数的方法
打开终端, 用cd命令 定位到工程所在的目录,然后调用以下命名即可把每个源代码文件行数及总数统计出来: find . "(" -name "*.m" -or - ...
- 数百个 HTML5 例子学习 HT 图形组件 – 3D建模篇
http://www.hightopo.com/demo/pipeline/index.html <数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇>里提到 HT 很 ...
- 数百个 HTML5 例子学习 HT 图形组件 – 3D 建模篇
http://www.hightopo.com/demo/pipeline/index.html <数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇>里提到 HT 很 ...
- 数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇
<数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇>一文让读者了解了 HT的 2D 拓扑图组件使用,本文将对 HT 的 3D 功能做个综合性的介绍,以便初学者可快速上手使用 HT ...
随机推荐
- 解决js跨域
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...
- RHEL7:如何配置I / O调度程序
介绍 I / O调度程序用于优化磁盘上的读/写. RHEL 7中有三种类型的I / O调度程序(也称为I / O电梯): CFQ(C fullly F air Q ueuing)促进来自实时流程的I ...
- mysql 创建数据数据库 (避免新建的库名已经存在、设置编码)
1.创建数据库的 create database 数据库名 eg: Create database mydatabase 查看已创建的数据: show databases; 结果: 2.数据库名所对应 ...
- 禁用休眠(删除休眠文件) 关掉此选项可节省C盘好几G空间:文章内容bat文件源码
@ECHO offTITLE 关掉休眠 MACHENIKE set TempFile_Name=%SystemRoot%\System32\BatTestUACin_SysRt%Random%.bat ...
- 关于strip(切割)和 split(分开) 的区别
plit(), 以括号里的东西为标准,把字符串分开成一个列表 strip(), "删除",括号里出现的东西,从两头开始往中间删除,直到遇到阻碍.中间就算有,也不会受影响 s10 = ...
- python的unittest框架中如何删除测试数据,清理环境,可以通过addCleanup函数
def addCleanup(self, function, *args, **kwargs): """Add a function, with arguments, t ...
- VMWare虚拟机下为Windows Server 2012配置静态IP(NAT方式)
利用VMWare Workstation安装了Windows Server 2012 R2, 对于服务器来说,使用动态分配的IP会很不方便,最好设置为静态IP,此例中虚拟机和主机的网络联接方式为NAT ...
- Java基础知识强化之集合框架笔记79:HashMap的实现原理
1. HashMap的实现原理之 HashMap数据结构: HashMap是对数据结构中哈希表(Hash Table)的实现, Hash表又叫散列表.Hash表是根据关键码Key来访问其对应的值Val ...
- 1297. [SCOI2009]迷路【矩阵乘法】
Description windy在有向图中迷路了. 该有向图有 N 个节点,windy从节点 0 出发,他必须恰好在 T 时刻到达节点 N-1. 现在给出该有向图,你能告诉windy总共有多少种不同 ...
- Linux MySql5.6.38安装过程
1.下载mysql安装包mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz 2.用xftp工具将其上传到Linux服务器上的soft文件夹,没有的话先创建 [root ...