E - Enigma Gym - 101889E dp求可除一个整数的最小数
题目链接:https://odzkskevi.qnssl.com/fa6682426fb11e87a5ab9246f22a461d?v=1538674155
题意:
给你一个长度为1000的字符串s和一个最大为1000的数n,s中有至少一位的数是用?表示的,你要将这个字符串还原成一个可以整除n的数,问这个数最小是多少。如果找不到这样一个数那么输出*。
做法:
数位dp,因为比赛没打所以也没当时想,其实是想不到的。。dp[i][j]表示是到第i位的时候,余数为j的情况是否存在,这个可以用记忆化搜索来保存,这样的话最大的搜索次数是1000*1000.据机房的大神说很简单。。感觉一点也不。。
#include <bits/stdc++.h>
using namespace std;
int dp[1005][1005],k,l;
char s[1005],ans[1005];
int dfs(int now,int yu){if(now==l+1){return yu==0;}if(dp[now][yu]!=-1) return dp[now][yu];int tmp=0;if(s[now]!='?'){ans[now]=s[now];tmp=dfs(now+1,(yu*10+s[now]-'0')%k);}else {int down=(now==1?1:0),tmp;for(int i=down;i<=9;i++){ans[now]=i+'0';tmp=dfs(now+1,(yu*10+i)%k);if(tmp) return dp[now][yu]=tmp;}}return dp[now][yu]=tmp;
}
int main(){scanf("%s%d",s+1,&k);l=strlen(s+1);memset(dp,-1,sizeof(dp));if(dfs(1,0)) ans[l+1]='\0',printf("%s\n",ans+1);else printf("*\n");return 0;
}
E - Enigma Gym - 101889E dp求可除一个整数的最小数相关推荐
- 求大于等于(小于等于)一个整数最小2次幂算法
给一个整数,如何求得大于等于该整数的最小2次幂呢? 最近看ConcurrentHashMap的源码中有这么一段代码,这段代码就是解决这个问题的最好答案.现在我给大家来讲解一下这段代码的意思吧. /** ...
- 旅游(树形dp求树的最大独立集)
链接:https://ac.nowcoder.com/acm/problem/15748 来源:牛客网 题目描述 Cwbc和XHRlyb生活在s市,这天他们打算一起出去旅游. 旅行地图上有n个城市,它 ...
- 树上子链(树形dp求树的直径)
树上子链 题意: 给定一棵树 T ,树 T 上每个点都有一个权值. 定义一颗树的子链的大小为:这个子链上所有结点的权值和 . 请在树 T 中找出一条最大的子链并输出. 题解: 求树的直径,题目中存在负 ...
- Check the difficulty of problems (概率dp求概率)
Check the difficulty of problems POJ - 2151 大致题意: m个问题,t个队伍,要求冠军队伍至少解决n个问题,给出每个队伍解决每个问题的概率 求每一个队至少解决 ...
- NCD 2019题解C. Hasan and his lazy students【dp求lis,顺序维护方案数】
题目链接 题意,给序列,求最长上升子序列长度和方案数. n<=1000,因为n小于1e3,所以可以使用复杂度为n2的dp做法,然后使用一个结构体来维护方案数就行了: 先定义一个结构体,包含dp求 ...
- 滑稽树下你和我Average distance(树形dp求任意两点距离之和)
滑稽树下你和我. 链接:https://ac.nowcoder.com/acm/contest/992/J 来源:牛客网 题目描述 红红和蓝蓝是随机降生在苹果树上的苹果仙灵,现在红线仙想估测他们的CP ...
- 判断一个整数是否是水仙花数 || 编写程序,根据输入的月份和年份,求出该月的天数(1-12)|| 运算符的优先级问题 ||输出小写的a-z以及大写的Z—A||求出1-1/2+1/3-1/4…..1/
判断一个整数是否是水仙花数,所谓水仙花数是指一个3位数, 其各个位上数字立方和等于其本身.例如: 153 = 1*1*1 + 5*5*5 + 3*3*3 ...
- 编程笔试(解析及代码实现):求出一个整数中各位数上所包含全部质数之和
编程笔试(解析及代码实现):求出一个整数中各位数上所包含全部质数之和 目录 题目描述 代码实现 题目描述 求出一个整数中各位数上所包含全部质数之和 一家电子商务公司计划在圣诞节给客户提供特别折扣,他们 ...
- 算法--微软面试题:求一个整数数组元素间最小差值
Q题目 有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数. A解法 方案一:最愚笨的办法--暴力穷举 利用数组中所有数据两两相减的对比来求出这个最小差值. ...
- C++求一个整数的各位数字总和(附完整源码)
C++求一个整数的各位数字总和算法 C++求一个整数的各位数字总和算法完整源码(定义,实现,main函数测试) C++求一个整数的各位数字总和算法完整源码(定义,实现,main函数测试) int su ...
最新文章
- 【LeetCode】0136. 只出现一次的数字
- python创建nc文件_如何python写nc文件
- python pil_python PIL 图像处理
- 入门机器学习(一)--单变量线性回归
- 8.13 Prototypical Networks 原型网络
- WordPress: 使用 wp_insert_attachment 上传附件
- 最后1天!阿里云双11拼团入官方热荐团直享最低折扣!还有机会瓜分百万现金!...
- Pycharm: 设置默认字符编码为 utf-8模版
- python盖帽法_干货:用Python进行数据清洗,这7种方法你一定要掌握
- 大数据思维的十大核心原理
- Flash Cs4安装之后打不开(启动界面一闪而过)
- 51单片机:8051指令简介
- 74HC595原理图”中“ RCLK SRCLK SRCLR”是什么意思
- 树莓派4B连接PCF8591模块
- 不能有比这个再靠谱的星座分析了
- 2019年科协宣传部第一次培训
- 关于find命令-perm 的用法
- 【王者荣耀】全英雄无水印皮肤下载器
- vue移动端适配解决方案
- 七夕,那个不一样的人
热门文章
- c盘扩容提示簇被标记_如何解决C盘爆满
- HTML 音乐播放器界面
- CancelledError: [_Derived_]RecvAsync is cancelled.
- Statement cancelled due to timeout or client request报错
- 内核代码之SIP ALG分析
- 管家婆辉煌7.2 7.1 年结存导致单据明细丢失 提示:这段时间无过帐单据。
- 计算机键盘上每一个键的作用,电脑键盘上各种键的作用是什么 电脑键盘上每个键的作用说明【图文】...
- KEIL MDK平台 S3C2440 C语言软件仿真
- nginx + tomcat 504 解决方案
- 智能卡卡发卡流程(收藏4)