Description
666号被认为是神秘的“野兽之数”,在所有以启示录为主题的大片中都是一个被广泛使用的数字。但是,这个数字666不能总是在脚本中使用,所以应该使用1666这样的数字。让我们把至少包含三个连续的六位数字的数字称为可怕的数字。头几个可怕的数字是666,1666,2666,3666,4666,5666…

给定一个基于1的索引n,程序应该返回第n个可怕的数字。
Input
第一行包含测试用例的数量t(t≤1000)。

以下每一个t行包含一个整数n(1≤n≤50000000)作为测试用例。

Output
对于每个测试用例,您的程序应该输出第n个糟糕的数字。
Sample Input
3
2
3
187
Sample Output
1666
2666
66666

这题的\(T\)比较小,我们考虑二分第\(n\)个可怕的数。

数位DP求出这个数字之前有几个可怕的数。

#include<bits/stdc++.h>
using namespace std;
int dp[101][2][2][2],n,x,a[101],cnt,t;
int get_ans(int wei,int st,int nd,int six,int ding)
{if(!wei){return six;}if(!ding&&dp[wei][st][nd][six]){return dp[wei][st][nd][six];}int up=ding?a[wei]:9,ans=0;for(int i=0;i<=up;i++){if(six){ans+=get_ans(wei-1,i==6,st,1,ding&&(i==up));}else{ans+=get_ans(wei-1,i==6,st,st&&nd&&i==6,ding&&(i==up));}}if(!ding){dp[wei][st][nd][six]=ans;}return ans;
}
int check(long long x)
{cnt=0;while(x){a[++cnt]=x%10;x/=10;}return get_ans(cnt,0,0,0,1);
}
int main()
{scanf("%d",&t);while(t--){scanf("%d",&x);long long l=1,r=100000000000;while(l<=r){long long mid=(l+r)/2;if(check(mid)<x){l=mid+1;}else{r=mid-1;}}printf("%lld\n",l);}return 0;
}

转载于:https://www.cnblogs.com/2017gdgzoi44/p/11558889.html

【POJ3208】Apocalypse Someday相关推荐

  1. 【POJ3208】 (DP)

    Apocalypse Someday Description The number 666 is considered to be the occult "number of the bea ...

  2. 【原创】shadowebdict开发日记:基于linux的简明英汉字典(三)

    全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...

  3. 【NLP】⚠️学不会打我! 半小时学会基本操作 8⚠️ 新闻分类

    [NLP]⚠️学不会打我! 半小时学会基本操作 8⚠️ 新闻分类 概述 TF-IDF 关键词提取 TF IDF TF-IDF TfidfVectorizer 数据介绍 代码实现 概述 从今天开始我们将 ...

  4. 【CentOS】利用Kubeadm部署Kubernetes (K8s)

    [CentOS]利用Kubeadm部署Kubernetes (K8s)[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体实验流程 1 系统准 ...

  5. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  6. 【C#】类——里式转换

    类是由面对对象程序设计中产生的,在面向结构的程序设计例如C语言中是没有类这个概念的!C语言中有传值调用和传址调用的两种方式!在c语言中,主方法调用方法,通过传递参数等完成一些操作,其中比较常用的的数据 ...

  7. 【C#】Out与ref是干什么的?

    关于return: 1.最后没有写 return 语句的话,表示程序正常退出 2.不需要返回值时,存在return的作用 例子 void main() {return; //return退出该程序的作 ...

  8. 【软件工程】RUP与软件开发5大模型

    软件开发的5大模型 1.瀑布模型:按照人的思维一步一步的开发下去,如果需求分析得当,每个阶段顺利,结果还不错! 2.快速原型模型:后来人们发现,自己不可能一下子就把所有的需求搞清楚,总是在开发的过程中 ...

  9. 【VB】学生信息管理系统5——数据库代码

    这次学生信息管理系统在代码的理解过程中遇到了一些问题.总结如下: 1. sql server的安装过程各个步骤的意思.在安装SQL Server的时候按照网上的步骤,我觉得这个需要学完整个数据库再返回 ...

最新文章

  1. echarts在360中以及IE8浏览器不兼容:解决方案
  2. pg 递归算法_PostgreSQL递归查询_20191212
  3. Linux中Cache内存占用过高解决办法
  4. 专家:大数据等新技术助力信息融合
  5. java 数组正则表达式_java正则表达式实现提取需要的字符并放入数组【ArrayList数组去重复功能】...
  6. 肖仰华 | 做个“有知识”的机器人
  7. java 写一个计算器_java编写一个计算器类
  8. python图像质量评价_OpenCV图像质量评价的SSIM算法(图像相似度)
  9. duri oracle 连接字符串_C#连接Oracle数据库的连接字符串
  10. L2TP详解(五)——Client Initiated隧道和会话建立过程
  11. 计算机网络课设--小型企业网络的规划与设计
  12. 【已解决】平板远程控制WIN10电脑
  13. iOS开发工程师面试题--中级
  14. 5D论文PMF及改进
  15. CISCO ISIS
  16. HTTPS证书文件格式转换
  17. 学计算机小升初,小升初微机派位什么意思
  18. 叠加等边三角形的绘制 python_叠_叠是什么意思_叠字怎么读_叠的含义_叠字组词-新东方在线字典...
  19. (xxx.dll)处(位于xxx.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000003F 时发生访问冲突。已解决。
  20. 转售联通物联网卡的盈利可能性探讨

热门文章

  1. 重入锁-ReentrantLock
  2. 矢量数据与卫星地图叠加效果最完美的解决方案
  3. python标注cad桩位_cad自动进行桩位编号
  4. 计算机系统指定文件类型,一、1.在计算机系统中,依靠_______来指定文件类型。.doc...
  5. 核密度函数详解,核密度函数图如何看?
  6. 技术至简-5:动画显示复指数信号的形状与物理意义
  7. Win10与Win7 64位系统的CPU多线程调度差异
  8. Java基础——匿名内部类
  9. “TN”劫持:chrome命令行
  10. 通达信行情接口源代码是什么?