Investigation LightOJ - 1068
常规数位dp题,对于不同k分开记忆化。注意:k大于82(1999999999的数位和)时不会有答案,直接输出0即可。还有,按照这种记录不同k时的答案的做法需要卡一下空间。
错误1次原因:没有卡空间
#include<cstdio>
#include<cstring>
int ans[][][][];
int a,b,k,T,TT;
int w[];
int dp(int pos,int r,int sum,bool pre0,bool limit)
{
if(pos<) return r==&&sum%k==&&!pre0;
if(!limit&&ans[k][pos][r][sum]!=-)
return ans[k][pos][r][sum];
int i,end=limit?w[pos]:,res=;
for(i=;i<=end;i++)
res+=dp(pos-,(r*+i)%k,sum+i,pre0&&i==,limit&&i==w[pos]);
return limit?res:ans[k][pos][r][sum]=res;
}
int get(int x)
{
int g=;
for(;x>;x/=) w[++g]=x%;
return dp(g,,,,);
}
int main()
{
memset(ans,-,sizeof(ans));
scanf("%d",&T);
for(TT=;TT<=T;TT++)
{
scanf("%d%d%d",&a,&b,&k);
if(k>)
{
printf("Case %d: %d\n",TT,);
continue;
}
printf("Case %d: %d\n",TT,get(b)-get(a-));
}
return ;
}
Investigation LightOJ - 1068的更多相关文章
- LightOJ 1068 Investigation (数位dp)
problem=1068">http://www.lightoj.com/volume_showproblem.php?problem=1068 求出区间[A,B]内能被K整除且各位数 ...
- lightoj 1068 - Investigation(数位dp)
An integer is divisible by 3 if the sum of its digits is also divisible by 3. For example, 3702 is d ...
- Lightoj 1068(数位DP)
求一段区间中被k整除,各个位数相加之和被k整除的数的个数. 这不是重点,重点是k太大了,最大值有10000,所以不能直接开那么大的数组. 仔细分析一下可以发现,由于数最大是2的31次方(2147483 ...
- [转]数位dp小记
转载自:http://blog.csdn.net/guognib/article/details/25472879 参考: http://www.cnblogs.com/jffifa/archive/ ...
- 数位DP 计划
通常的数位dp可以写成如下形式: [cpp] view plain copy int dfs(int i, int s, bool e) { if (i==-1) return s==target_s ...
- light oj 1068 - Investigation 数位DP
思路:典型的数位DP!!! dp[i][j][k]:第i位,对mod取余为j,数字和对mod取余为k. 注意:由于32位数字和小于95,所以当k>=95时,结果肯定为0. 这样数组就可以开小点, ...
- 区间DP LightOJ 1422 Halloween Costumes
http://lightoj.com/volume_showproblem.php?problem=1422 做的第一道区间DP的题目,试水. 参考解题报告: http://www.cnblogs.c ...
- LightOj 1298 - One Theorem, One Year(DP + 欧拉)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1298 题意:给你两个数 n, p,表示一个数是由前 k 个素数组成的,共有 n 个素数 ...
- w3svc服务启动 不了,错误 1068:依赖服务或组件无法启动
win10系统,装了iis就是启动不了,报错误 1068:依赖服务或组件无法启动. 各种实验无法使用,最后如下方法解决 运行命令regedit,打开注册表编辑器,进入:HKEY_LOCAL_MACHI ...
随机推荐
- 图像处理之 opencv 学习---矩阵的操作
OpenCV的一些操作,如生成随机矩阵,高斯矩阵,矩阵相乘之类的 /*功能:说明矩阵的一些操作方法*/#include "cv.h"//该头文件包含了#include " ...
- Hero In Maze
Hero In Maze 时间限制(普通/Java):1000MS/10000MS 执行内存限制:65536KByte 描写叙述 500年前,Jesse是我国最卓越的剑客. 他英俊潇 ...
- Java对对象的引用 不是 引用调用 而是按值引用 Java不存在引用调用
call by reference Java call by value
- SD/MMC异同
该文章转自:http://www.imhan.com/archives/12/ 经常看到SD/MMC这样的写法,在这里稍微总结一下SD卡和MMC卡的异同点吧. 首先,两者在外型的规格上是几乎一致的.而 ...
- ElementUI的Upload上传,配合七牛云储存图片
七牛云服务器的储存区域 存储区域 地域简称 上传域名 华东 z0 服务器端上传:http(s)://up.qiniup.com 华东 z0 客户端上传: http(s)://upload.qiniup ...
- input框只允许输入正整数、正数(包含小数)的解决方法 vue.js实现
我来打自己脸了!!!!...刚刚发现在中文输入法下是无效的,有人能解决这个问题么 如果要求input只能输入数字怎么做? 设置type="number" ? 那我如果想限制长度,此 ...
- RedisCluster集群搭建
搭建集群方案 安装部署任何一个应用其实都很简单,只要安装步骤一步一步来就行了.下面说一下 Redis 集群搭建规划,由于集群至少需要6个节点(3主3从模式),所以,没有这么多机器给我玩,我本地也起不了 ...
- html5--6-11 CSS选择器7--伪类选择器
html5--6-11 CSS选择器7--伪类选择器 #E:target 选择当前活动的锚点元素. 学习要点 掌握常用的CSS选择器 了解不太常用的CSS选择器 什么是选择器 当我们定义一条样式时候, ...
- Mysql语句示例
Mysql语句示例 最常用 sql 语句总结 前言 Mysql 是数据库开发使用的主要平台之一.sql 的学习掌握与使用是数据库开发的基础,此处展示详细sql 语句的写法,及各种功能下的 sql 语句 ...
- mysql 5.5升级到5.7版本操作流程
一.备份原来 phpStudy 中 MySQL 安装目录 二.把下载的 MySQL 压缩文件解压至 phpStudy 下的 MySQL目录,复制 my-default.ini ,重命名为 my.ini ...