【距离GDOI:141天】 滚入数位DP的坑
作为博客园的第一篇...我都不知道要写什么了 ...
其实今天很没状态,就当吐槽吧...
嗯,被黄神带去写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的坑的更多相关文章
- 数位dp踩坑
前言 数位DP是什么?以前总觉得这个概念很高大上,最近闲的没事,学了一下发现确实挺神奇的. 从一道简单题说起 hdu 2089 "不要62" 一个数字,如果包含'4'或者'62', ...
- # 数位DP入坑
Hdu 2089 不要62 #include<iostream> #include<cstdio> #include<cmath> #include<cstr ...
- 专题训练之数位DP
推荐以下一篇博客:https://blog.csdn.net/wust_zzwh/article/details/52100392 1.(HDOJ2089)http://acm.hdu.edu.cn/ ...
- 浅谈数位DP
在了解数位dp之前,先来看一个问题: 例1.求a~b中不包含49的数的个数. 0 < a.b < 2*10^9 注意到n的数据范围非常大,暴力求解是不可能的,考虑dp,如果直接记录下数字, ...
- 51NOD 1623 完美消除 数位DP
题目描述: 定义数的消除操作为选定[L,R,x],如果数的第L到第R位上的数字都大于等于x,并且这些数都相等,那么该操作是合法的(从低位到高位编号,个位是第一位,百位是第二位……),然后将这些位数上的 ...
- [HDOJ3709]Balanced Number(数位dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3709 题意:求区间[L,R]内每一个数中是否存在一位,使得左边的各位数*距离=右边的各位数*距离(自己 ...
- [DP]数位DP总结
数位DP总结 By Wine93 2013.7 1.学习链接 [数位DP] Step by Step http://blog.csdn.net/dslovemz/article/details/ ...
- CCF 201312-4 有趣的数 (数位DP, 状压DP, 组合数学+暴力枚举, 推公式, 矩阵快速幂)
问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次. 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前. 3. 最高 ...
- hdu3709(数位dp)
求区间[l,r]内有多少个数的满足: 选一个位为中点,是的左边的数到该位的距离等于右边的位到该位的距离. 比如4139 选择3位中点, 那么左边的距离是 4 * 2 + 1 * 1 , 右边的距 ...
随机推荐
- find - 递归地在层次目录中处理文件
总览 SYNOPSIS find [path...] [expression] 描述 DESCRIPTION 这个文档是GNU版本 find 命令的使用手册. find 搜索目录树上的每一个文件名,它 ...
- 踩坑日志!viser-ng的使用
在ng-alian项目中使用viser图表库,在app.module中引用了viser-ng,然而,在具体的html项目中使用<v-chart>会报错,提示v-chart不是一个angul ...
- React后台管理系统-rich-editor组件
1.Simditor组件的github地址:https://github.com/mycolorway/simditor 网址:http://simditor.tower.im/ 2.在util里边新 ...
- vue列表过渡效果
<transition-group></transition-group> ① 列表 <transition-group> </transition-grou ...
- Qt之QThread随记
这是一篇随记,排版什么的就没有那么好了:) 首先要知道,一个线程在资源分配完之后是以某段代码为起点开始执行的,例如STL内的std::thread,POSIX下的pthread等,都是以函数加其参数之 ...
- pycahrm git配置笔记
1. 在file - setting - plugins 中查看是否有github插件, 此处是用于处理插件位置
- <%%>用法初步认识
<%%>是用于向客户端插入服务器代码所使用的一种标记 例如为了在HTML页面上展示由服务器提供的当前用户的某条信息或名字等便可使用 前台 <a href="home.asp ...
- python 输入英语单词,查看汉语意思
# -*- coding:utf-8 -*- import urllib2 import lxml.html as HTML def get_wordmean(): url = 'http://www ...
- 十五、MySQL DELETE 语句
MySQL DELETE 语句 你可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录. 你可以在 mysql> 命令提示符或 PHP 脚本中执行该命令. 语法 ...
- yii2初步讲解 验证规则
http://www.yii-china.com/post/detail/9.html