ANOI 2009 【同类分布】
好累啊啊啊~~~~~~,刷了一天的题了,嗯,再写两篇题解我就去颓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 【同类分布】的更多相关文章
- [AHOI 2009] 同类分布
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1799 [算法] 数位DP [代码] #include<bits/stdc++. ...
- BZOJ1799 self 同类分布 数位dp
BZOJ1799self 同类分布 去博客园看该题解 题意 给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数. [约束条件]1 ≤ a ≤ b ≤ 10^18 题解 1.所有的位数之和&l ...
- 【BZOJ1799】[AHOI2009]同类分布(动态规划)
[BZOJ1799][AHOI2009]同类分布(动态规划) 题面 BZOJ 洛谷 题解 很容易想到数位\(dp\),然而数字和整除原数似乎不好记录.没关系,直接枚举数字和就好了,这样子就可以把整除原 ...
- 洛谷 P4127 [AHOI2009]同类分布 解题报告
P4127 [AHOI2009]同类分布 题目描述 给出两个数\(a,b\),求出\([a,b]\)中各位数字之和能整除原数的数的个数. 说明 对于所有的数据,\(1 ≤ a ≤ b ≤ 10^{18 ...
- bzoj 1799: [Ahoi2009]self 同类分布 数位dp
1799: [Ahoi2009]self 同类分布 Time Limit: 50 Sec Memory Limit: 64 MB[Submit][Status][Discuss] Descripti ...
- [BZOJ1799][AHOI2009]同类分布(数位DP)
1799: [Ahoi2009]self 同类分布 Time Limit: 50 Sec Memory Limit: 64 MBSubmit: 1635 Solved: 728[Submit][S ...
- HYSBZ - 1799 self 同类分布
self 同类分布 HYSBZ - 1799 给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数.Sample Input 10 19 Sample Output 3 Hint [约束条件] ...
- P4127 [AHOI2009]同类分布
P4127 [AHOI2009]同类分布 题解 好的,敲上数位DP DFS板子 记录一下填的各位数字之和 sum ,然后记录一下原数 yuan 最后判断一下 yuan%sum==0 不就好啦??? ...
- [Ahoi2009]self 同类分布
1799: [Ahoi2009]self 同类分布 Time Limit: 50 Sec Memory Limit: 64 MBSubmit: 2357 Solved: 1079[Submit][ ...
随机推荐
- Java 与 Mysql连接,并分页显示
这是我第一个上规模的Java项目,我们必须在一周内完成的作业,零基础学习Java,网上收集了很多资料,逐渐对面向对象的思想有所了解,但还是半灌水,后期打算结合项目系统地学习一遍Java.老师布置的任务 ...
- hyperledger fabric 智能合约开发
开发步奏: 1.创建教育联盟 2.区块链服务平台自动生成通道id 3.区块链网络服务人员通过命令行在区块链网络中创建对应通道 4.创建相关教育组织 5.邀请相关组织加入联盟 6.区块链网络管理人员通过 ...
- origin Tips
origin Tips 注意事项 在最初画图时,需要考虑到最好将图片的尺寸限制在 1 张 A4 纸的大小,不然有可能在插入 latex 的时候出问题 . 如何修改图片的尺寸?简而言之就是将画布中的图片 ...
- JS语法_集合
数组方法 forEach // no-log Array.prototype.forEach_ = function (cb) { let len = this.length for (let i = ...
- 说说ERP软件的系统设计--开源软件诞生8
赤龙ERP系统设计篇--第8篇 用日志记录"开源软件"的诞生 赤龙 ERP 开源地址: 点亮星标,感谢支持,与开发者交流 kzca2000 码云:https://gitee.com ...
- 图解 Await 和 Async
原文链接:Await and Async Explained with Diagrams and Examples 文章目录 简介 Promise 问题:组合 Promise Async 函数 Awa ...
- Redis之命令详解
Redis命令手册:http://doc.redisfans.com/
- maoge数
maoge数 题目描述 maoge定义一个数x是maoge数的条件,当且仅当x的各数位之和等于 x / 2向下取整,现在maoge想让你求 n 的约数中有多少个maoge数 输入格式 输入一个数 n ...
- 记tp5.1使用composer PhpOffice的xlsx表格文件导入数据库
在项目环境下composer require phpoffice/phpspreadsheet在项目中引用use PhpOffice\PhpSpreadsheet\IOFactory; 下面是 上传x ...
- github无法访问
打开 C:\Windows\System32\Drivers\etc 找到hosts文件. 添加以下代码 #github 192.30.255.112 github.com git 185.31.16 ...