好累啊啊啊~~~~~~,刷了一天的题了,嗯,再写两篇题解我就去颓Slay。。。

思路分析:

刚刚我们讲了数位DP,现在就感受一下吧。(其实我也就只敢做做安徽的题,四川的数位DP想都不敢想)

嗯好,我们开始分析题目吧!

这题怎么说呢,额,——很暴力,嗯,非常暴力,暴力到我都不敢去想,(可以说它和大暴力只相差了一个苗条的YLK),然而它是能过的。

怎么个暴力法呢?

——直接暴力枚举面积枚举这个数各个数位相加的和,够暴力吧!

开始设计状态(然而我们写的是dfs,其实是一样的),dp[pos][p][sum]表示当前已经做到了pos位,模我们枚举的各个数位的和的余数为p,当前各数位相加和为sum。

做dfs的时候只要当pos>len且p=0,sum=我们枚举的各个数位之和,就代表这是一种合法的方案。

代码实现:

var
dp:array[1..20,0..180,0..180] of int64;
a:array[1..20] of Integer;
i,len,oo:Longint;
ans,l,r:int64;
function dfs(pos,p,sum,lead,flag:Longint):int64;
var
res:int64;
i,limit:Longint;
begin
if pos>len then
if (sum=oo)and(p=0) then exit(1) else exit(0);
if sum>oo then exit(0);
if (dp[pos][p][sum]<>-1)and(lead+flag=0) then exit(dp[pos][p][sum]);
if flag=1 then limit:=a[len-pos+1] else limit:=9;
res:=0;
for i:=0 to limit do
res:=res+dfs(pos+1,(p*10+i)mod oo,sum+i,ord((lead=1)and(i=0)),ord((flag=1)and(i=limit)));
if lead+flag=0 then dp[pos][p][sum]:=res;
dfs:=res;
end;
function part(x:int64):int64;
begin
len:=0; part:=0;
while x>0 do
begin inc(len); a[len]:=x mod 10; x:=x div 10; end;
for oo:=1 to len*9 do
begin
fillchar(dp,sizeof(dp),255);
part:=part+dfs(1,0,0,1,1);
end;
end;
begin
read(l,r);
ans:=ans-part(l-1)+part(r);
writeln(ans);
end.

ANOI 2009 【同类分布】的更多相关文章

  1. [AHOI 2009] 同类分布

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1799 [算法] 数位DP [代码] #include<bits/stdc++. ...

  2. BZOJ1799 self 同类分布 数位dp

    BZOJ1799self 同类分布 去博客园看该题解 题意 给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数. [约束条件]1 ≤ a ≤ b ≤ 10^18 题解 1.所有的位数之和&l ...

  3. 【BZOJ1799】[AHOI2009]同类分布(动态规划)

    [BZOJ1799][AHOI2009]同类分布(动态规划) 题面 BZOJ 洛谷 题解 很容易想到数位\(dp\),然而数字和整除原数似乎不好记录.没关系,直接枚举数字和就好了,这样子就可以把整除原 ...

  4. 洛谷 P4127 [AHOI2009]同类分布 解题报告

    P4127 [AHOI2009]同类分布 题目描述 给出两个数\(a,b\),求出\([a,b]\)中各位数字之和能整除原数的数的个数. 说明 对于所有的数据,\(1 ≤ a ≤ b ≤ 10^{18 ...

  5. bzoj 1799: [Ahoi2009]self 同类分布 数位dp

    1799: [Ahoi2009]self 同类分布 Time Limit: 50 Sec  Memory Limit: 64 MB[Submit][Status][Discuss] Descripti ...

  6. [BZOJ1799][AHOI2009]同类分布(数位DP)

    1799: [Ahoi2009]self 同类分布 Time Limit: 50 Sec  Memory Limit: 64 MBSubmit: 1635  Solved: 728[Submit][S ...

  7. HYSBZ - 1799 self 同类分布

    self 同类分布 HYSBZ - 1799 给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数.Sample Input 10 19 Sample Output 3 Hint [约束条件] ...

  8. P4127 [AHOI2009]同类分布

    P4127 [AHOI2009]同类分布 题解 好的,敲上数位DP  DFS板子 记录一下填的各位数字之和 sum ,然后记录一下原数 yuan 最后判断一下  yuan%sum==0 不就好啦??? ...

  9. [Ahoi2009]self 同类分布

    1799: [Ahoi2009]self 同类分布 Time Limit: 50 Sec  Memory Limit: 64 MBSubmit: 2357  Solved: 1079[Submit][ ...

随机推荐

  1. 【经验分享】用adb揪出安卓APP弹窗广告的原形

    背景 相信不少安卓用户中过影子弹窗广告的困扰,这种推广APP本体在后台运行,而且可以在其他APP上弹出覆盖广告,一不小心就会误操作,点击广告或者下载APP,着实令人恶心. 以前的广告软件只在通知栏会推 ...

  2. 阿里云体验实验室 体验教程《Linux指令入门-系统管理》

    体验平台简介 阿里云开发者实验室提供免费云资源和丰富的场景化实践,旨在帮助开发者在学习应用技术,了解阿里云产品的特性. 阿里云体验实验室地址:https://developer.aliyun.com/ ...

  3. 用Java爬虫爬取凤凰财经提供的沪深A股所有股票代号名称

    要爬取的凤凰财经网址:http://app.finance.ifeng.com/list/stock.php?t=hs 本作主要采用的技术是jsoup,相关介绍网页:https://www.jians ...

  4. 关于h5游戏开发,你想了解的一切都在这儿!

    ​2020年,受疫情影响,线下产业红利褪去,线上迎来的新一轮的高峰.众多商家纷纷抓住了转型时机,开启了流量争夺战.H5游戏定制无疑是今年引流的大热门.如何开发一款有趣.有爆点.用户爱买单的好游戏呢? ...

  5. Python基础 读取二进制文件

    问题 有二进制文件中保存了 20 亿个 2 Bytes 的数,需将其读出,每 20000 个数作图,拟合后输出结果. 解决 # -*- coding: utf-8 -*- ""&q ...

  6. 【Azure DevOps系列】使ASP.NET Core应用程序托管到Azure Web App Service

    使用Azure DevOps Project设置ASP.NET项目 我们需要先在Azure面板中创建一个Azure WebApp服务,此处步骤我将省略,然后点击部署中心如下图所示: 此处我选择的是Az ...

  7. python基础五(函数、全局变量和局部变量)

    一.全局变量和局部变量 全局变量,即可以在当前文件所有地方都可使用的变量,一次修改,整个文件都影响.如果函数体内部使用全局变量,要先声明global 局部变量,只能在函数体内部使用,除了函数体就不可使 ...

  8. 不懂 ZooKeeper?没关系,这一篇给你讲的明明白白

    本来想系统回顾下 ZooKeeper的,可是网上没找到一篇合自己胃口的文章,写的差不多的,感觉大部分都是基于<从Paxos到ZooKeeper 分布式一致性原理与实践>写的,所以自己读了一 ...

  9. 教你一招Linux下文本比对方法

    我们在写代码的过程中,免不了会对代码进行一些修修改改.但经常会出现改着改着,就不知道改完后与源文件的差异是怎样的.这里,我们就需要一个文本比对工具来进行文本比对. 有经验的程序员都知道,Windows ...

  10. [计算机网络]TCP/IP协议-运输层

    TCP/IP体系结构 TCP/IP四层协议 五层协议 协议 作用 应用层 应用层 HTTP超文本传输协议.FTP文件传输协议 - 运输层 运输层 TCP(面向连接的,可靠的).UDP(无连接的,不保证 ...