题目链接:https://loj.ac/problem/10166
题目大意
求区间[a,b]有多少数字满足数位加和%N等于0。
解题思路
看范围,很明显的数位dp。我们设定状态dp[pos][N][i]表示在%N的情况下,到第pos位,数位加和%N是i,会有多少数字满足数位加和%N等于0。
之后就是很easy的套模板环节。
AC代码

#include <iostream>
#include <stdio.h>
#include <cstring>
#include <algorithm>
using namespace std;
int dp[40][105][105];//dp[pos][N][i]表示在%N情况下到第pos位数位之和%N为i的满足条件有多少
int a[40];
int x,y,N,cnt;
void init(int n)
{cnt=0;while(n){a[++cnt]=n%10;n/=10;}
}
int dfs(int pos,int limit,int mod)
{if(!pos)return mod==0;if(!limit&&dp[pos][N][mod]!=-1)return dp[pos][N][mod];int up=limit?a[pos]:9;int ans=0;for(int i=0;i<=up;++i){ans+=dfs(pos-1,limit&&i==up,(mod+i)%N);}if(!limit)dp[pos][N][mod]=ans;return ans;
}
int main()
{memset(dp,-1,sizeof(dp));//别忘记初始化while(~scanf("%d%d%d",&x,&y,&N)){init(x-1);int l=dfs(cnt,1,0);init(y);int r=dfs(cnt,1,0);printf("%d\n",r-l);}return 0;
}

数位dp(一)——Loj #10166. 「一本通 5.3 练习 1」数字游戏相关推荐

  1. LOJ #10166. 「一本通 5.3 练习 1」数字游戏

    题目:数字游戏 思路:数位dp 代码: #include<bits/stdc++.h> using namespace std;int a,b,n; int c[20]; int dp[2 ...

  2. #10166. 「一本通 5.3 练习 1」数字游戏【数位 DP】

    题目描述 由于科协里最近真的很流行数字游戏,某人又命名了一种取模数,这种数字必须满足各位数字之和 mod N为 0.现在大家又要玩游戏了,指定一个整数闭区间 [a,b],问这个区间内有多少个取模数. ...

  3. #10166. 「一本通 5.3 练习 1」数字游戏

    [题目描述] 由于科协里最近真的很流行数字游戏,某人又命名了一种取模数,这种数字必须满足各位数字之和 modN 为 0.现在大家又要玩游戏了,指定一个整数闭区间 [a,b],问这个区间内有多少个取模数 ...

  4. #10164. 「一本通 5.3 例 2」数字游戏

    题目描述 原题题面 科协里最近很流行数字游戏.某人命名了一种不降数,这种数字必须满足从左到右各位数字成小于等于的关系,如 ,.现在大家决定玩一个游戏,指定一个整数闭区间 ,问这个区间内有多少个不降数. ...

  5. LOJ 10155. 「一本通 5.2 例 3」数字转换

    题目:数字转换 思路: 对于每一个数,把它和它能够转移到的数之间连一条边. 由于不存在多元环,这个图本质上是一棵树. 然后在树上求最长链的长度就可以了. 具体实现就是dfs遍历整棵树,对于以每个点ii ...

  6. LOJ 10155 - 「一本通 5.2 例 3」数字转换

    前言 从现在开始,这个博客要写一些题解了.起初,开这个博客只是好玩一样,没事就写写CSS.JS,然后把博客前端搞成了现在这个样子.以前博客只是偶尔记录一些东西,刷题也从来不记录,最近受一些学长的影响, ...

  7. LOJ #10155. 「一本通 5.2 例 3」数字转换

    无向图的最长链怎么求?和树的直径求法相同. #include <bits/stdc++.h> using namespace std; const int N=5e4+5; int n,a ...

  8. loj10166. 「一本通 5.3 练习 1」数字游戏

    思路: 设f[i][j]为i位数字,其和模N为j的方案种数,dp求解. #include<cstdio> #include<iostream> #include<cstr ...

  9. LOJ#10172. 「一本通 5.4 练习 1」涂抹果酱

    题目链接:https://loj.ac/problem/10172 题目描述 Tyvj 两周年庆典要到了,Sam 想为 Tyvj 做一个大蛋糕.蛋糕俯视图是一个 N×MN×MN×M 的矩形,它被划分成 ...

最新文章

  1. 面向对象的JavaScript-009-闭包
  2. NOI2015 程序自动分析
  3. Matlab 二维绘图函数(plot类)
  4. Media Player控件常用的样式
  5. HDU 6741 MUV LUV UNLIMITED (博弈论)
  6. cordova报错:Error: Failed to find ‘ANDROID_HOME‘ environment variable. Try setting setting it manually
  7. 2013.5.21号面试心得
  8. 解决升级 Office 2010 之后 Outlook 提示“无法打开 Microsoft Outlook”
  9. struts2和struts1认识
  10. Notepad++便签模式
  11. mysql root_mysql root 没有任何权限
  12. matlab光束,matlab仿真光束的传输特性
  13. 【OpenCV学习笔记】【函数学习】十九(感兴趣区域)
  14. 网页游戏脱机脚本制作视频教程
  15. Exchange 2010输入序列号方式
  16. java怎么实现直方图均衡化_直方图均衡化原理与实现
  17. 老人步履蹒跚,警惕骨关节炎
  18. 人人商城开启整点秒杀功能
  19. Mybatis整合Spring框架时所需的依赖
  20. 计算思维-卡内基梅隆大学计算机系主任周以真

热门文章

  1. Linux命令行五大装B技术
  2. 分布式消息通信ActiveMQ原理 分析一
  3. python绘制3d球体网格散点图
  4. 华为接近获准为伦敦地铁供应移动搜集
  5. Revit API之在墙或者屋顶上开洞口【比目鱼原创】
  6. QT-通用TCP客户端使用工具
  7. offer:英文单词,在求职过程中通常指录用通知书。
  8. 群晖(NAS)拆下来的硬盘读取问题
  9. java webwork_WebWork简单示例
  10. 股市量化接口都有哪些?