【2018.4.7】模拟赛之一-ssl2382 K好数【数位dp】
正题
大意
如果一个数每一位都小于k那么这个数是好数。给出n和k,求1-n里有多少个好数。
解题思路1
将起改为一个k+1进制的数,那么每次加1后这个数都是好数。然后判断一下是否大于n(十进制的情况下)
解题思路2
数位dp,时间复杂度O(n的位数):
f[i]表示后i位数没有被前面的数影响的好数数量
g[i]表示后i位数被前面的数影响的好数数量
n[i]表示n的第i位数
然后动态转移方程
f[i]=f[i-1]*(k+1)
g[i]=f[i] (n[i]>k)
g[i]=g[i-1]+f[i-1]*n[i] (n[i]
代码1
#include<cstdio>
using namespace std;
int a[9],maxs[9],w,m,s,n;
bool add()
{bool flag=0;a[1]++;//加1for (int i=1;i<=w;i++){if (a[i]>m){a[i+1]++;a[i]=0;//进位}if (a[i]>maxs[i]) flag=true;else if (a[i]<maxs[i]) flag=false;//判断大小}if (a[w+1]!=0) return true;return flag;
}
int main()
{ scanf("%d%d",&n,&m);a[1]=0;for (int i=n;i;i/=10){maxs[++w]=i%10;//计算}while (true){if (add()) break;s++;}printf("%d",s);
}
代码2
#include<cstdio>
using namespace std;
int n,num,g,f,k;
int main()
{scanf("%d%d",&n,&k);f=1;g=1;for (n=n;n;n/=10){num=n%10;if (num>k) g=(k+1)*f;else g+=num*f;f=(k+1)*f;//动态转移}printf("%d",g-1);
}
【2018.4.7】模拟赛之一-ssl2382 K好数【数位dp】相关推荐
- 2018.10.9模拟赛
2018.10.9模拟赛 T1 trade 正解:贪心 据说lyd讲过但并没有印象QAQ,考场上现推浪费了不少时间 其实就开个小根堆,每次把堆顶取出来看它是不是比当前的 a[i]a[i]a[i] 小, ...
- 算法训练 K好数(dp+动态规划)
问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数的数目.例如K = 4,L = 2的时候,所有K好数为11.13.20.22 ...
- 【校内模拟】A(容斥原理)(数位DP)(范德蒙德恒等式)(高精度)
简要题意: 请你对满足下列条件的正整数序列 A1,A2⋯AnA_1,A_2\cdots A_nA1,A2⋯An 进行计数. ∀1≤i≤n,Li≤Ai≤Ri\forall 1\leq i\leq ...
- 2018,10,19模拟赛
jz的题...写炸了不少暴力...还有容斥等不太熟练 T1以为n^2*m过不去,想了好久 归根到底还是我太蒻了qwq 存一下代码 t1 为了稳一点写了部分分...还没删,可以自行跳过ovo #incl ...
- 【2018.3.17】模拟赛之二-ssl1862jzoj1366 删数【区间dp】
正题 链接 需要纪中OJ账号 有n个数,可以选择删除一段区间,价值为|xi – xk|*(k-i+1).求删完所有数的最大价值 输入输出(需要自取) Input 输入文件的第一行为一个正整数N,第二行 ...
- 2018.3.10 模拟赛——(2)给出字符串
题目大意: 给出一个由小写字母组成的字符串.你的任务是找出其最长的出现至少两次的子串的长度.这些重复出现的子串可以重叠,比如:ababa aba视为出现两次 解题思路: 数据较小,字符串长度≤100. ...
- 2018.10.2模拟赛
八数码 1 问题描述 有33 共9 个格子,其中有一个格子是空的,其他格子填满了18 之间不同的数字.通过 移动格子可以改变数字和空格的位置,现在给你初状态和末状态,请你给出最少的移动步数. 2 输入 ...
- 2018.10.31模拟赛
T1 lgg L 君和 G 君在玩一个游戏.G 君写下一个字符串 A,L 君将其复制一遍连接到 A 串后面得 到字符串 B, G 君又在 B 的任意位置(包括首尾)插入一个字符得到字符串 C.现在你得 ...
- 2018蓝桥杯模拟赛(一)H【floyd求最短路径】
蒜头君被暗黑军团包围在一座岛上,所有通往近卫军团的路都有暗黑军团把手.幸运的是,小岛上有一扇上古之神打造的封印之门,可以通往近卫军团,传闻至今没有人能解除封印. 封印之门上有一串文字,只包含小写字母, ...
最新文章
- mvc手把手教你写excel导入
- Ext学习-前后交互模式介绍
- xmemcached发布1.3.6
- Mestasploit 客户端渗透
- [20161031]rman备份与数据文件OS块.txt
- C/C++命令行参数那点事
- 顺丰快递单号的规律_顺丰速运顺丰快递单号查询大全
- 使用carbon_东华大学《Carbon》多孔碳纳米纤维复合膜,优异电磁波吸收性能!
- PyTorch 深度学习:31分钟快速入门——Batch Normalization
- NLP学习一 形式语言与自动机
- Android8.0.0的BUG Only fullscreen opaque activities can request orientation
- pandas的一些理解
- Android穿山甲SDK接入,已封装直接使用
- 求数组所有非空子序列的和
- 从订单信息页面进入订单详细商品页面,最简单的MVC思想
- Laravel 存在SQL注入漏洞
- 74LS85 比較器 【数字电路】
- html5 手机模板 解放区,解放区异形模板
- FFmpeg+SDL 视频播放器
- 名词性从句 - 同位语从句
热门文章
- linux开机自动挂载硬盘指定权限,Linux开机自动挂载硬盘
- 登录服务器修改数据库吗,如何修改服务器登录数据库 sa
- cefsharp49显示html,CefSharp-cefshar
- MYSQL数据库表大小计算,计算mysql数据库数据表的大小,不精确,只是大略的数据...
- Java如何控制用户输入的长度,用Java Applet 进行Web编程时,如何限制输入域中可输入字符的长度!解决后马上给分!!!...
- matlab优化算法案例分析与应用_最优化计算与matlab实现(18)——粒子群优化算法——权重改进的粒子群算法...
- oracle asm 配置失败,Oracle ASMLib安装与配置
- C++11的for循环使用auto的新用法
- 解决Java当中 用point 画图时背景颜色变成黑色问题
- java的hr样式,spring+spring mvc+mybatis开发java医院HR人事管理系统(加强版本+ shiro)...