数位dp(一)——Loj #10166. 「一本通 5.3 练习 1」数字游戏
题目链接: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」数字游戏相关推荐
- LOJ #10166. 「一本通 5.3 练习 1」数字游戏
题目:数字游戏 思路:数位dp 代码: #include<bits/stdc++.h> using namespace std;int a,b,n; int c[20]; int dp[2 ...
- #10166. 「一本通 5.3 练习 1」数字游戏【数位 DP】
题目描述 由于科协里最近真的很流行数字游戏,某人又命名了一种取模数,这种数字必须满足各位数字之和 mod N为 0.现在大家又要玩游戏了,指定一个整数闭区间 [a,b],问这个区间内有多少个取模数. ...
- #10166. 「一本通 5.3 练习 1」数字游戏
[题目描述] 由于科协里最近真的很流行数字游戏,某人又命名了一种取模数,这种数字必须满足各位数字之和 modN 为 0.现在大家又要玩游戏了,指定一个整数闭区间 [a,b],问这个区间内有多少个取模数 ...
- #10164. 「一本通 5.3 例 2」数字游戏
题目描述 原题题面 科协里最近很流行数字游戏.某人命名了一种不降数,这种数字必须满足从左到右各位数字成小于等于的关系,如 ,.现在大家决定玩一个游戏,指定一个整数闭区间 ,问这个区间内有多少个不降数. ...
- LOJ 10155. 「一本通 5.2 例 3」数字转换
题目:数字转换 思路: 对于每一个数,把它和它能够转移到的数之间连一条边. 由于不存在多元环,这个图本质上是一棵树. 然后在树上求最长链的长度就可以了. 具体实现就是dfs遍历整棵树,对于以每个点ii ...
- LOJ 10155 - 「一本通 5.2 例 3」数字转换
前言 从现在开始,这个博客要写一些题解了.起初,开这个博客只是好玩一样,没事就写写CSS.JS,然后把博客前端搞成了现在这个样子.以前博客只是偶尔记录一些东西,刷题也从来不记录,最近受一些学长的影响, ...
- LOJ #10155. 「一本通 5.2 例 3」数字转换
无向图的最长链怎么求?和树的直径求法相同. #include <bits/stdc++.h> using namespace std; const int N=5e4+5; int n,a ...
- loj10166. 「一本通 5.3 练习 1」数字游戏
思路: 设f[i][j]为i位数字,其和模N为j的方案种数,dp求解. #include<cstdio> #include<iostream> #include<cstr ...
- LOJ#10172. 「一本通 5.4 练习 1」涂抹果酱
题目链接:https://loj.ac/problem/10172 题目描述 Tyvj 两周年庆典要到了,Sam 想为 Tyvj 做一个大蛋糕.蛋糕俯视图是一个 N×MN×MN×M 的矩形,它被划分成 ...
最新文章
- 面向对象的JavaScript-009-闭包
- NOI2015 程序自动分析
- Matlab 二维绘图函数(plot类)
- Media Player控件常用的样式
- HDU 6741 MUV LUV UNLIMITED (博弈论)
- cordova报错:Error: Failed to find ‘ANDROID_HOME‘ environment variable. Try setting setting it manually
- 2013.5.21号面试心得
- 解决升级 Office 2010 之后 Outlook 提示“无法打开 Microsoft Outlook”
- struts2和struts1认识
- Notepad++便签模式
- mysql root_mysql root 没有任何权限
- matlab光束,matlab仿真光束的传输特性
- 【OpenCV学习笔记】【函数学习】十九(感兴趣区域)
- 网页游戏脱机脚本制作视频教程
- Exchange 2010输入序列号方式
- java怎么实现直方图均衡化_直方图均衡化原理与实现
- 老人步履蹒跚,警惕骨关节炎
- 人人商城开启整点秒杀功能
- Mybatis整合Spring框架时所需的依赖
- 计算思维-卡内基梅隆大学计算机系主任周以真