题目大意

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

解题思路

#include<iostream>
#include<algorithm>
using namespace std;
int t,n,m,k;
long long f[21][4];
void work()//预处理!!!
{f[0][0]=1;for(int i=0;i<20;i++){for(int j=0;j<3;j++){f[i+1][j+1]+=f[i][j];f[i+1][0]+=f[i][j]*9;}f[i+1][3]+=f[i][3]*10;}
}int main(){work();scanf("%d",&t);while(t){t--;scanf("%d",&n);//题目中第几个魔鬼数 for(m=3;f[m][3]<n;m++);//求出第n个魔鬼数的位数!!! k=0;for(int i=m;i>0;i--){    //从小到大枚举第i位数字!!! for(int j=0;j<=9;j++){//求出后面i-1位有多少填法能让整个数是魔鬼数 long long tmp=f[i-1][3];if(k==3||j==6)for(int p=max(0,3-k-(j==6?1:0));p<3;p++)tmp+=f[i-1][p];if(tmp<n)  n-=tmp; //如果cnt比n小,说明第n个魔鬼数的第i位比j更大!!! else//否则,第i位就应该为 j {if(k<3&&j==6) k++;//k记录当前位已有连续几个连续6 if(k<3&&j!=6) k=0;printf("%d",j);break;}}}printf("\n");}return 0;
}

数位DP POJ3208 Apocalypse Someday相关推荐

  1. poj3208 Apocalypse Someday (数位dp + 二分)

    The number 666 is considered to be the occult "number of the beast" and is a well used num ...

  2. POJ-3208 Apocalypse Someday (数位DP)

    只要某数字的十进制表示中有三个6相邻,则该数字为魔鬼数,求第X小的魔鬼数\(X\le 5e7\) 这一类题目可以先用DP进行预处理,再基于拼凑思想,用"试填法"求出最终的答案 \( ...

  3. POJ3208:Apocalypse Someday

    题目描述 The number 666 is considered to be the occult "number of the beast" and is a well use ...

  4. poj3208 Apocalypse Someday

    Description The number 666 is considered to be the occult "number of the beast" and is a w ...

  5. poj3208 Apocalypse Someday 题解报告

    题目传送门 [题目大意] 包含连续的至少三个6的数称为"beastly number",将这些数从小到大排序,求第n个数. [思路分析] (注:以下加粗的"数" ...

  6. 数位dp真·浅谈 By cellur925

    预警:由于是从$Vergil$学长那里和$Mathison$大神那里学来的,所以清一色记忆化搜索!qwq 巨佬的数位dp讲解(未来的咕咕日报头条): https://www.luogu.org/blo ...

  7. poj 3208 Apocalypse Someday 数位dp+二分答案

    Apocalypse Someday Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 2203   Accepted: 11 ...

  8. poj 3208 Apocalypse Someday(数位dp)

    题意:给定n,输出第n大包含666的数字. 分析:数位dp,详见<算法竞赛进阶指南>P342-344. 代码: #include<iostream> #include<c ...

  9. Poj 3208 Apocalypse Someday(数位dp + 二分)

    题目大意:   有三个连续的6在一起的数就是beast数,前几个beast数是:666,1666,2666,-   T组数据,每组询问排名为n的beast的数是什么? 解题思路 第一眼看到懵逼了,不是 ...

最新文章

  1. 利用计算机软件温度补偿,基于自主传感器信号调理芯片温度补偿的软件设计
  2. python 代码分块_[代码全屏查看]-python多进程分块读取文件
  3. mysql数据通讯方式_c# 与 Mysql 的通讯方式总结
  4. 浅析五种C语言内存分配的方法及区别
  5. 前端学习(2666):完成vue3.0的todolist编辑
  6. linux的定时任务有多耗资源,linux定时任务的一些相关操作汇总
  7. 什么是ooa,oop
  8. 省级国土空间基础信息平台建设方案分析
  9. JavaEE学习03--Servlet
  10. 解决启动CAD时没有响应
  11. 粤省事:随时、随地、随处的便民解决方案
  12. 碲化铋纳米线合成步骤
  13. ubuntu16.04编译obmc
  14. 字节数组与字节流、缓冲字节流、字符流、缓冲字符流、对象流
  15. 【矩阵论笔记】最小多项式与Jordan型的关系
  16. 【CEC2017】CEC2017优化算法目标测试函数综述以及CEC2017的matlab实现
  17. 职场技巧:如何跟老板谈涨工资?
  18. 全球及中国B2B支付平台行业应用前景及盈利趋势预测报告(2022-2027)
  19. 基于pycharts的白蛇2影评分析
  20. 华南理工大学建筑学院建筑设计及其理论专业考研上岸经验分享

热门文章

  1. 指针的步长及意义(C语言基础)
  2. ksql函数 转载的秦亚伟的
  3. 基于NVIDIA TX2的usb basyer工业相机编码推流
  4. Excel数据表格“”连字符4种在使用中的小技巧
  5. 【机器学习】课程笔记16_大规模机器学习(Large Scale Machine Learning)
  6. 为啥一直是第54行空指针异常
  7. c语言memset函数用法,C语言memset函数使用方法详解
  8. 苏尔无线麦与纽曼搭配使用详细方法
  9. blender 批量单独导出模型
  10. 计算机网络——01网络模型