作为博客园的第一篇...我都不知道要写什么了 ...

其实今天很没状态,就当吐槽吧...

嗯,被黄神带去写treap+可持久化线段树,然后在可持久化的删除上面跪了两天,真的是一跪不起。我已经连续多久没有AC一道题了?有时候真心会觉得,学一些东西,到达差不多就应该先放手,一次性钻太深对自己没好处。其实之前到可持久化结束就可以结束了,还顺手搞掉配对堆和替罪羊,已经很不错了。这时候再来搞什么可持久化的加深...额有点感觉无效率。加上自己这两天社团有事,状态直接变成渣了...自己的错,都是蒟蒻的借口罢了。说好每天都要有一点小进步,哪去了...

数位DP

数位DP的概念在这个东西里面讲的很清楚

http://wenku.baidu.com/link?url=W07aYBvgLsyu3GYWWcBU0qrF88jn-hXXFzzjmLzEK7D2ZdEtl3lkAT9SlWNTJX_Q1FkH_BWIcDUM1vjgizIEliiJ1O6CK576ORA3o5Y8e6G

第一道题写的是HDU 2089,其实里面也讲了题解...然后,主要是别忘了在计算的时候,x本身没有被考虑,所以考虑区间的时候应该要 solve(m+1)-solve(n) ...

var
f:array[..,..] of longint;
d:array[..] of longint;
n,m:longint; function calc(x:longint):longint;
var sum:longint;
begin
sum:=;
fillchar(d,sizeof(d),);
while x> do
begin
inc(sum);
d[sum]:= x mod ;
x:= x div ;
end;
calc:=sum;
end; function solve(x:longint):longint;
var ans,len,i,j,k:longint;
begin
ans:=;
len:=calc(x);
for i:= len downto do
begin
for j:= to d[i]- do
if (j<>) and ((j<>) or (d[i+]<>)) then ans:=ans+f[i,j];
if (d[i]=) or ((d[i]=) and (d[i+]=)) then break;
end;
solve:=ans;
end; procedure init;
var i,j,k:longint;
begin
f[,]:=;
for i:= to do
for j:= to do
for k:= to do
if (j<>) and ((j<>) or (k<>)) then f[i,j]:=f[i-,k]+f[i,j];
end; Begin
init;
readln(n,m);
while (n<>) or (m<>) do
begin
writeln(solve(m+)-solve(n));
readln(n,m);
end;
End.

【距离GDOI:141天】 滚入数位DP的坑的更多相关文章

  1. 数位dp踩坑

    前言 数位DP是什么?以前总觉得这个概念很高大上,最近闲的没事,学了一下发现确实挺神奇的. 从一道简单题说起 hdu 2089 "不要62" 一个数字,如果包含'4'或者'62', ...

  2. # 数位DP入坑

    Hdu 2089 不要62 #include<iostream> #include<cstdio> #include<cmath> #include<cstr ...

  3. 专题训练之数位DP

    推荐以下一篇博客:https://blog.csdn.net/wust_zzwh/article/details/52100392 1.(HDOJ2089)http://acm.hdu.edu.cn/ ...

  4. 浅谈数位DP

    在了解数位dp之前,先来看一个问题: 例1.求a~b中不包含49的数的个数. 0 < a.b < 2*10^9 注意到n的数据范围非常大,暴力求解是不可能的,考虑dp,如果直接记录下数字, ...

  5. 51NOD 1623 完美消除 数位DP

    题目描述: 定义数的消除操作为选定[L,R,x],如果数的第L到第R位上的数字都大于等于x,并且这些数都相等,那么该操作是合法的(从低位到高位编号,个位是第一位,百位是第二位……),然后将这些位数上的 ...

  6. [HDOJ3709]Balanced Number(数位dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3709 题意:求区间[L,R]内每一个数中是否存在一位,使得左边的各位数*距离=右边的各位数*距离(自己 ...

  7. [DP]数位DP总结

     数位DP总结 By Wine93 2013.7 1.学习链接 [数位DP] Step by Step   http://blog.csdn.net/dslovemz/article/details/ ...

  8. CCF 201312-4 有趣的数 (数位DP, 状压DP, 组合数学+暴力枚举, 推公式, 矩阵快速幂)

    问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次. 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前. 3. 最高 ...

  9. hdu3709(数位dp)

    求区间[l,r]内有多少个数的满足:   选一个位为中点,是的左边的数到该位的距离等于右边的位到该位的距离. 比如4139  选择3位中点, 那么左边的距离是 4 * 2 + 1 * 1 , 右边的距 ...

随机推荐

  1. runtime运行时,类、对象、isa指针

    先查看一段OC源码,关于类的定义: /// An opaque type that represents an Objective-C class. typedef struct objc_class ...

  2. 第27题:Leetcode226: Invert Binary Tree反转二叉树

    翻转一棵二叉树. 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1  思路 如果根节点存在,就交换两个子树的根节点,用递归 ...

  3. POI Excel 插入新的行,下面的行动态移动

    在做Excel 模板时,会有遇到  模板行数不固定,如下图  需要在行次4下面再插入一行:注意:(插入的行如果是下面空白行,需要创建行) 解决方法是使用shifRows方法,第1个参数是指要开始插入的 ...

  4. Apache 错误日志

    配置文件中:httpd.conf ErrorLog "/usr/local/var/log/apache2/error_log1" CustomLog "/usr/loc ...

  5. windows下简单使用pip

    1. 在python官网上下载python时会自带pip,并且在安装Python时若未取消会默认一并安装 2. 找出pip.exe所在位置, 3. 右击此电脑,点击属性 4. 高级系统设置 5. 点击 ...

  6. Linux 系统性能:观察、测试、调优

    一个完整运行的 Linux 系统包括很多子系统(介绍,CPU,Memory,IO,Network,…),监测和评估这些子系统是性能监测的一部分.我们往往需要宏观的看整个系统状态,也需要微观的看每个子系 ...

  7. nodeJS 服务端文件上传

    var http = require('http'); var path = require('path'); var fs = require('fs'); function uploadFile( ...

  8. Ansible学习 Inventory文件

    Ansible可同时操作属于一个组的多台主机,组与主机之间关系配置在inventory文件中,inventory默认的配置文件是/etc/ansible/hosts 1.在/etc/ansible/h ...

  9. php中处理字符串的常见函数

    编写程序的时候,经常要处理字符串,最基本就是字符串的查找,在php检测字符串中是否包含指定字符串可以使用正则,如果你对正则不了解,那么有几个函数可以为您提供方便. 1. strstr strstr() ...

  10. Linux命令之---mkdir

    命令简介 mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 命令格式 mkdir [选项] 目录...(这里可以是多个目 ...