POJ3208-Apocalypse Someday【数位dp】

正题

题目链接:http://poj.org/problem?id=3208


题目大意

求第X个有3个连续的6的数。


解题思路

fi,j(j<3)fi,j(j<3)表示i位,已经有j个6的方案总数。然后fi,3fi,3表示i位的魔鬼数的总数。
然后动态转移方程。

fi,0=9(fi1,0+fi1,1+fi1,2)fi,0=9∗(fi−1,0+fi−1,1+fi−1,2)

只要一个不是6的数就能间断他们
fi,1=fi1,0fi,1=fi−1,0

fi,2=fi1,1fi,2=fi−1,1

加一个6
fi,3=fi1,2+10fi1,3fi,3=fi−1,2+10∗fi−1,3

上一位加任意一个数或两个六的情况下加一个6。
然后试填就好了


code

#include<cstdio>
#include<algorithm>
using namespace std;
long long f[21][4];
int t,n,m;
int main()
{f[0][0]=1;for(int i=1;i<=20;i++){f[i][0]=9*(f[i-1][0]+f[i-1][1]+f[i-1][2]);f[i][1]=f[i-1][0];f[i][2]=f[i-1][1];f[i][3]=f[i-1][2]+10*f[i-1][3];}//dpscanf("%d",&t);for(int ti=1;ti<=t;ti++){scanf("%d",&n);for(m=3;f[m][3]<n;m++);//判断位数for(int i=m,k=0;i;i--)//枚举填入位数{for(int j=0;j<=9;j++)//填入j{long long cnt=f[i-1][3];//判断位数if(j==6||k==3)for(int l=max(3-k-(j==6),0);l<3;l++)cnt+=f[i-1][l];//特判统计if(cnt<n)n-=cnt;//超过这个位数else{if(k<3)//位数不足3时特判特殊判断{k+=(j==6);k*=(j==6);}printf("%d",j);//输出break;//填完了}   }}printf("\n");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 自动配置的 “魔法” 是如何实现的?

转载自 Spring Boot 自动配置的 “魔法” 是如何实现的&#xff1f; Spring Boot是Spring旗下众多的子项目之一&#xff0c;其理念是约定优于配置&#xff0c;它通过实现了自动配置&#xff08;大多数用户平时习惯设置的配置作为默认配置&#xff09;的功能来为用户快速构建出…

for循环(一)

利用for循环打出一百句HelloWorld #include<stdio.h>main(){int i;for(i0;i<100;i){printf("HelloWorld\n");} } ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190324224126588.png?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,sha…

解决vue登录信息不及时更新问题

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 前言 现在是&#xff1a;2022年5月20日09:59:34 前面写过一篇文章&#xff0c;基于bladex框架实现的模拟登录&#xff0c;后来在测试的过程中发现了个问题&#xff0c;即A系统在跳转到本系…

学习ASP.NET Core,怎能不了解请求处理管道[2]: 服务器在管道中的“龙头”地位

ASP.NET Core管道由注册的服务器和一系列中间件构成。我们在上一篇中深入剖析了中间件&#xff0c;现在我们来了解一下服务器。服务器是ASP .NET Core管道的第一个节点&#xff0c;它负责完整请求的监听和接收&#xff0c;最终对请求的响应同样也由它完成。[本文已经同步到《AS…

Ch3101-阶乘分解【数论,质因数分解】

正题 题目链接:http://contest-hunter.org:83/contest/0x30%E3%80%8C%E6%95%B0%E5%AD%A6%E7%9F%A5%E8%AF%86%E3%80%8D%E4%BE%8B%E9%A2%98/3101%20%E9%98%B6%E4%B9%98%E5%88%86%E8%A7%A3 题目大意 质因数分解n!n!的阶乘。 解题思路 很简单的数学题&#xff0c;将1∼n1∼n全部…

for循环(二)

利用for循环按规律打出星星 #include<stdio.h>main(){int i,j;for(i0;i<10;i){for(j0;j<i;j){printf(" *"); }printf("\n");} }

接口方法上的注解无法被@Aspect声明的切面拦截的原因分析

转载自 接口方法上的注解无法被Aspect声明的切面拦截的原因分析 前言 在Spring中使用MyBatis的Mapper接口自动生成时&#xff0c;用一个自定义的注解标记在Mapper接口的方法中&#xff0c;再利用Aspect定义一个切面&#xff0c;拦截这个注解以记录日志或者执行时长。但是惊奇…

springboot实现用户统一认证、管理(单点登录)

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 前言 现在是&#xff1a;2022年5月25日13:44:16 最近和模拟登录杠上了&#xff0c;这不&#xff0c;又来了个需求&#xff0c;还是以这个技术点入手的。 需求大概是这样的&#xff1a;为了…

学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?

ASP.NET Core管道虽然在结构组成上显得非常简单&#xff0c;但是在具体实现上却涉及到太多的对象&#xff0c;所以我们在 “通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程”&#xff08;上篇、中篇、下篇&#xff09; 中围绕着一个经过极度简化的模拟管道讲述…

POJ2689-Prime Distance【质数,数论】

正题 题目链接:http://poj.org/problem?id2689 题目大意 求闭区间[L,R][L,R]中相邻的最远和最近的两个质数。 解题思路 我们可以用前R−−√个质因子筛这个区间内的质数R个质因子筛这个区间内的质数解题思路 #include<cstdio> #include<algorithm> #include&l…

for循环(三)

利用for循环打出乘法口诀表 #include<stdio.h>main(){int i,j,k;for(i1;i<10;i){for(j1;j<i1;j){printf("%d*%d%d\t",i,j,ki*j); }printf("\n");} } ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190324224732816.png?x-oss-proce…

springboot实现用户统一认证、管理

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂”前言现在是&#xff1a;2022年5月25日13:44:16最近和模拟登录杠上了&#xff0c;这不&#xff0c;又来了个需求&#xff0c;还是以这个技术点入手的。需求大概是这样的&#xff1a;为了统…

Mybatis 使用的 9 种设计模式,真是太有用了

转载自 Mybatis 使用的 9 种设计模式&#xff0c;真是太有用了 虽然我们都知道有26个设计模式&#xff0c;但是大多停留在概念层面&#xff0c;真实开发中很少遇到&#xff0c;Mybatis源码中使用了大量的设计模式&#xff0c;阅读源码并观察设计模式在其中的应用&#xff0c;…

P1463-[POI2002][HAOI2007]反素数【约数,数论】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP1463 题目大意 求1∼n1∼n中最大的一个约数个数比前面的所有数都要多的数。 解题思路 首先根据数据我们可以得知这个数的质因子不超过10个。而且这个数的质因子是连续若干个最小的质数&#xff0c;而…

springboot实现用户统一认证、管理-前端实现

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 前言 现在是&#xff1a;2022年6月2日15:43:51 上篇文章讲述了springboot中实现用户统一认证的具体内容&#xff0c;主要从后端角度出发的&#xff0c;其实大部分功能还是前端与后端交互的…

for循环(四)

利用for循环打出任意金字塔层数 #include<stdio.h>main(){int i,j,k,ceng;printf("请输入金字塔层数"); scanf("%d",&ceng);for(i1;i<ceng;i){for(j1;j<ceng-i1;j){printf(" ");}for(k1;k<i;k){printf(" *");}pri…

Unity3damp;amp;C#分布式游戏服务器ET框架介绍-组件式设计

前几天写了《开源分享 Unity3d客户端与C#分布式服务端游戏框架》&#xff0c;受到很多人关注&#xff0c;QQ群几天就加了80多个人。开源这个框架的主要目的也是分享自己设计ET的一些想法&#xff0c;所以我准备写一系列的文章&#xff0c;介绍下自己的思路跟设计&#xff0c;每…

springboot+vue实现用户统一认证、管理-前端实现

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂”前言现在是&#xff1a;2022年6月2日15:43:51上篇文章讲述了springboot中实现用户统一认证的具体内容&#xff0c;主要从后端角度出发的&#xff0c;其实大部分功能还是前端与后端交互的…

JS中 [] == ![]结果为true,而 {} == !{}却为false, 追根刨底

转载自 JS中 [] ![]结果为true&#xff0c;而 {} !{}却为false&#xff0c; 追根刨底 console.log( [] ![] ) // true console.log( {} !{} ) // false 在比较字符串、数值和布尔值的相等性时&#xff0c;问题还比较简单。但在涉及到对象的比较时&#xff0c;问题就变…

P2261-[CQOI2007]余数求和【数论,约数】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP2261 题目大意 求∑i1nk%i\sum^{n}_{i1}k\%i∑i1n​k%i。 解题思路 将k%ik\%ik%i展开一下&#xff0c;k−i∗⌊k/i⌋k-i*\lfloor k/i\rfloork−i∗⌊k/i⌋&#xff0c;然后答案就是 ∑i1nk−i∗⌊k/…