poj 3208 Apocalypse Someday(数位DP,4级)

RV1126开发板实战:手把手教你为GC2053摄像头添加驱动并打通视频流 本文详细介绍了在RV1126开发板上为GC2053摄像头添加驱动并打通视频流的全流程指南。从硬件连接到内核设备树配置,再到视频流测试与问题排查,每个步骤都配有详细解释和实用技巧,特别适合嵌入式Linux初学者快速上手。 阅读详情

Apocalypse Someday
Time Limit: 1000MS Memory Limit: 131072K
Total Submissions: 1385 Accepted: 632

Description

The number 666 is considered to be the occult “number of the beast” and is a well used number in all major apocalypse themed blockbuster movies. However the number 666 can’t always be used in the script so numbers such as 1666 are used instead. Let us call the numbers containing at least three contiguous sixes beastly numbers. The first few beastly numbers are 666, 1666, 2666, 3666, 4666, 5666…

Given a 1-based index n, your program should return the nth beastly number.

Input

The first line contains the number of test cases T (T ≤ 1,000).

Each of the following T lines contains an integer n (1 ≤ n ≤ 50,000,000) as a test case.

Output

For each test case, your program should output the nth beastly number.

Sample Input

3
2
3
187

Sample Output

1666
2666
66666

Source

POJ Monthly--2007.03.04, Ikki, adapted from TCHS SRM 2 ApocalypseSomeday
思路:数位DP dp[位数][状态] 合法的含666的个数

             0 无六 1最后一位是6 2最后两位是6 3已经合法

#include<cstdio>
#include<cstring>
#include<iostream>
#define FOR(i,a,b) for(int i=a;i<=b;++i)
#define clr(f,z) memset(f,z,sizeof(f))
#define LL long long
using namespace std;
int dp[15][4];///0,1,2,3have how many 6
int turn[4][10];
LL ans;
void init()
{
  clr(dp,0);clr(turn,0);
  turn[0][6]=1;
  turn[1][6]=2;
  turn[2][6]=3;
  FOR(i,0,9)turn[3][i]=3;
  dp[0][3]=1;///终态
  FOR(i,1,14)
  FOR(j,0,3)FOR(k,0,9)
  dp[i][j]+=dp[i-1][ turn[j][k] ];
}
LL get(int n)
{ int len,staue=0;
  FOR(i,1,14)
  {
    if(dp[i][0]>n)
    { //cout<<i<<endl;
      len=i;break;
    }
  }
  int add;LL ans=0;
  for(int i=len-1;i>=0;--i)
  {
    for(int j=0;j<10;++j)
    {
      if(dp[i][ turn[staue][j] ]<n)
        n-=dp[i][ turn[staue][j] ];
      else {add=j;break;}

    }
    ans=ans*10+add;
    staue=turn[staue][add];
  }
  return ans;
}
int main()
{
  int cas,n;
  init();
  scanf("%d",&cas);
  while(cas--)
  {
    scanf("%d",&n);
    printf("%I64d\n",get(n));
  }
}




深入解析经典蓝牙连接:从HCI命令到LMP协议的完整流程 本文深入解析经典蓝牙连接的完整流程,从设备发现、寻呼建立物理链路,到安全配对与加密的每一步。通过对照HCI LOG与AIR LOG,详细拆解了HCI命令与LMP协议报文的对应关系,帮助开发者精准定位连接问题,掌握蓝牙调试的核心方法。 阅读详情

相关推荐

MATPOWER下载安装教程

将MATPOWER文件复制在C:\Program Files (x86)\MATLAB\R2016b\bin目录下。原来的窗口中多了很多文件路径,点击【保存】,再点击【关闭】选择所要添加的MATPOWER文件夹,点击【选择文件夹】二、将MATPOWER放在bin目录下。找到菜单栏的【设置路径】点击【添加并包含子文件】一、从官网下载后解压。

weixin_47365903的博客 2万+

poj 3208 (666) Apocalypse Someday

题意:规定含有“666”的数就是某种特别的数,给你n,求出第n个数是多少? 题目链接: http://poj.org/problem?id=3208 思路:统计数字,数位dp, 习惯给范围,之后可以求出范围内的数有几个,故采用二分,求出那个数~~ #include #include #include #include #include using na

我心中有猛虎 细嗅蔷薇 1178

3个国产AI大模型实战:如何用DeepSeek+豆包+千问批量生成高质量测试用例(附完整代码)

本文详细介绍了如何利用DeepSeek、豆包和千问三大国产AI大模型批量生成高质量测试用例的实战方法。通过Python环境配置、多模型SDK安装和统一接口封装,实现高效测试用例生成,并结合结构化提示词设计和多模型结果对比分析,显著提升测试效率和覆盖率。

weixin_29197699的博客 711

POJ 3208 Apocalypse Someday 二分答案+数位DP

这题应该是POJ最强大的一道数位DP了吧 正解是AC自动机 不会 还是写数位DP吧 题目大意:我们令含有666的数字为不吉利数字,则可以得到一个递增数列: {an}=666,1666,2666,3666,4666,5666,6660,6661,.... 给定n,求an 首先我们把这个问题转化成另一个问题:给定n,求1~n中有多少个数含有666 解决了这个问题,把原问题二分答案即可 首先

世界 2842

Codex 命令行高效操作指南

本文详细介绍了Codex命令行工具的高效使用方法,包括安装配置、核心参数解析和实战技巧。通过`codex complete`、`codex explain`等指令,开发者可以快速生成代码、调试错误和重构项目,显著提升开发效率。特别推荐使用`--temperature`和`--max-tokens`参数优化生成结果。

weixin_29201313的博客 532

【CANoe】CAPL_ECU上电后首帧报文发出时间检测

【CANoe】CAPL_ECU上电后首帧报文发出时间检测,通过CANoe I/O口检测电压实现

星Yeah 的博客 2510

【POJ3208】传说中POJ最难的数位DP?(正解AC自动机,二解数位DP,吾异与之)

POJ最难数位DP?段段拆解,0ms数位树!

辗转山河弋流歌 2615

一篇文章带你认识 SpringBoot

文章目录一、原有 Spring 优缺点分析二、SpringBoot 的概述 一、原有 Spring 优缺点分析 (1)Spring 的优点分析 Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的 Java 对象(Plain Old Java Object,POJO)实现了EJB的功能。

南淮北安的博客 766

POJ 3208 Apocalypse Someday

题意:    将含有连续的三个6的数称为不吉利数,比如666,1666,6662,但是6266吉利。则666为第一个不吉利数,输入整数n,求第n个不吉利数。(n <= 5*10^7) 解法:    如果是给出n,求n以内的不吉利数有多少个,就是一个普通的数位DP。所以,就二分答案,对于每一个mid,求一下小于等于mid的数中不吉利数的个数。 tag:二分法,数位DP 1...

weixin_33924312的博客 144

AI产品经理面试宝典第94天:RAG知识库构建与预处理策略面试指南

本文深入解析RAG知识库构建的核心挑战与预处理策略,涵盖文档格式转换、问答对生成及自动化测试全流程,为AI产品经理提供面试必备的实战方法论与避坑指南,助你精准应对技术深度类问题。

打造全国最全的AI Agent开发知识领域的博客 312

Open3D点云算法与点云深度学习案例汇总(长期更新)

Open3D-python算法专栏文章汇总,长期更新算法原理与实战案例。

纵马踏花向自由 7471

开源的预测气象大模型与数据获取/可视化

「开源气象大模型与数据获取指南」摘要: 当前主流AI气象模型(如ECMWF的AIFS、DeepMind的GraphCast、华为Pangu等)主要基于ERA5/HRES数据训练。开源资源可通过ECMWF OpenData、GitHub仓库及Google Cloud获取,其中AIFS数据采用CCBY-4.0许可可商用,其他模型多有限制性许可。典型应用流程包括:1)通过Python包获取实时预报数据;2)加载预训练权重进行推理;3)使用xarray/cartopy或Zarr进行可视化。训练数据可从CDS下载ER

专注AI大模型,软件混淆,授权 795

poj 3208 Apocalypse Someday(数位dp)

题目链接:poj 3208 Apocalypse Someday 题目大意:给定n,输出第n大包含666的数字。 解题思路:数位dp,用类似AC自动机的思想进行转移。首先dp[i][j]表示说i位最后有j个连续6的情况数,这个预处理出 来。那么dp[i][3]即为i位有多少个满足的数。给定n,先确定位数d。然后从最高位向下判断,一开始肯定是需要3个连续 的6,所以u为3,然

不慌不忙、不急不躁 2344

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【poj3208-Apocalypse Someday】数位DP

【poj3208-Apocalypse Someday】数位DP 题意:问你在所有包含666的数中,第n大的是多少。(1 ≤ n ≤ 50,000,000) 。开头几个是666, 1666, 2666, 3666, 4666, 5666… 题解: 这题可以用AC自动机,不知道这个怎么做。。 用了数位DP。 第一道自己好好调出来的数位DP。。...

qq_25768269的博客 211

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

poj 3208 Apocalypse Someday (数位dp)

Apocalypse Someday Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 1490   Accepted: 686 Description The number 666 is considered to be the occult “number

To be what you what to be! 1333

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【POJ3208】Apocalypse Someday(二分,数位DP)

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

ezoi_ly的博客 309

POJ 3208-Apocalypse Someday【数位DP+二分】

题意:给你一个n(n<5e7),让你找到第n个包含“666”的数。 思路:妥妥的数位DP,我们可以考虑二分答案,左边界为0,右边界我提前试了一下发现在(1<< 32)之内,我们不断逼近左边界一定可以找到答案,需要注意的是会计算上0,所以要减去1 #include<cstdio> #include<cstring> #include<iostre...

独钓门前月 470

poj 3208 Apocalypse Someday(数位dp)

题意:给定n,输出第n大包含666的数字。 分析:数位dp,详见《算法竞赛进阶指南》P342-344。 代码: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; long long f[21][4]; i...

常胜将军的博客 333

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

题目大意:   有三个连续的6在一起的数就是beast数,前几个beast数是:666,1666,2666,…   T组数据,每组询问排名为n的beast的数是什么? 解题思路 第一眼看到懵逼了,不是通常问这种类型的数在某个区间有多少个吗,为啥子这样问 思考ing… 我只要二分一下每个数,对每个数都求一遍数位dp,算出在这个数范围内有多少个这样的数,而且是答案是满足单调递增的!!! 剩下的思路:就是参考 hdu不要62, 改成不要666 即可 AC代码: #include <iostream>

trouble_的博客 240

Apocalypse Someday (POJ - 3208,数位 DP)

一.题目链接: POJ-3208 二.题目大意: 定义魔鬼数为含有连续 666 的数. 求第 k 大的魔鬼数. 三.分析: 很明显用填坑法解数位 DP. 假设当前枚举到数字的第 i 位且第 i 位为 j ,那我们需要知道小于等于当前枚举的数的魔鬼数有多少个. 显然需要预处理出 f[i][j]. f[i][0]: 不超过 i 位数且从第 i 位开始有 0 个连续的 6 的非魔鬼数的...

The___Flash的博客 298

POJ3208 Apocalypse Someday(二分 数位DP)

数位DP加二分 //数位dp,dfs记忆化搜索 #include<iostream> #include<cstdio> #include<cstring> using namespace std; typedef long long LL; #define N 20 LL dp[N][3];//dp[i][j]表示长度为i...

Nobel7889的专栏 253

【POJ3208】Apocalypse Someday

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

aijian7152的博客 211

poj3208 Apocalypse Someday (数位dp + 二分)

The number 666 is considered to be the occult “number of the beast” and is a well used number in all major apocalypse themed blockbuster movies. However the number 666 can’t always be used in the scri...

yhb的博客 241

【POJ3208】Apocalypse Someday【数位DP】

poj链接 题目大意 求第nnn个包含666666666的正整数。 题解 这种有包含字符的数位DP题,一般套用ac自动机(kmp)的思想建出失配指针。 以还缺几个6建出四个节点的fail树,nxt指针预处理出来(即为g[i][j]g[i][j]g[i][j])。 还要预处理f[i][j]f[i][j]f[i][j]:表示位数为iii且包含连续jjj个6的数的个数,规定连续3个或以上的6...

ezoixx118的博客 303

poj3208 Apocalypse Someday[数位DP]

数位中出现至少3个连续的'6'的数字(称魔鬼数),询问满足要求的排名k的数。 经典题型。采用试填法。 递推做法:预处理出$i$位数字中满足要求的数(下记为'魔鬼数')。对每一位都从0到9试一遍,然而卡在了试填时试到6这个数时该怎么办,不太会做。然后才知道可以记录填到目前的上一位已有多少个连续的6,这样可以配合当前的计算出来。 所以就有这个$f[i][0]=9*(f[i-1][0...

dianer2977的博客 106
上一篇: hdu 4424 Conquer a New Region(并查集,4级)
下一篇: hdu 4433 locker(DP,4级)
剑不飞
博客等级 码龄15年 86粉丝 505原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值