POJ 3208 Apocalypse Someday

原创 2016年08月28日 20:59:11

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.


【题目分析】
数位DP,放一个传送门。%%%


【代码】

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int f[11][4],ans[11];
int main()
{
    f[0][0]=1;
    for (int i=0;i<=15;i++)
      for (int j=0;j<=3;j++)
      {
        f[i+1][j==3?3:j+1]+=f[i][j];
        f[i+1][j==3?3:0]+=f[i][j]*9;
      }

    int tt,x;
    scanf("%d",&tt);
    while (tt--)
    {
        scanf("%d",&x);
        int len=3,cnt=0,now=0;
        while (f[len][3]<x) len++;
        for (int i=len;i>=1;--i)
        {
            for (int j=0;j<=9;++j)
            {
                int y=cnt;
                if (cnt<3) {if (j==6) cnt++; else cnt=0;}
                int tot=now;
                for (int k=3;k>=0;--k) if (cnt+k>=3) tot+=f[i-1][k];
                if (tot>=x) {ans[i]=j;break;}
                now=tot;
                cnt=y;
            }
        }
        for (int i=len;i>=1;--i) printf("%d",ans[i]); printf("\n");
    }
}
版权声明:标注来源之后可随意引用[请记得添加友链]

相关文章推荐

poj3208 Apocalypse Someday

数位dp
  • sdfzyhx
  • sdfzyhx
  • 2016年07月04日 21:34
  • 193

poj 3208 Apocalypse Someday 自动机+dp

题意: 求第n个包含3个连续6的数。 分析: 设状态0表示末尾没有6,状态1表示末尾有1个6,状态2表示末尾有2个6,状态3表示末尾有3个6或之前有3个6,可构造出确定状态自动机。然后对该自动机...
  • sepNINE
  • sepNINE
  • 2015年03月25日 11:29
  • 535

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

这题应该是POJ最强大的一道数位DP了吧 正解是AC自动机 不会 还是写数位DP吧 题目大意:我们令含有666的数字为不吉利数字,则可以得到一个递增数列: {an}=666,1666,2666,3...
  • PoPoQQQ
  • PoPoQQQ
  • 2014年09月16日 16:33
  • 2056

POJ 3208 Apocalypse Someday

二分+数位DP

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

POJ最难数位DP?段段拆解,0ms数位树!
  • Vmurder
  • Vmurder
  • 2014年09月16日 22:25
  • 1701

【Today is Someday】

早就有念头想做一个自己的网站,但是一想,没时间,没技术,就一直拖了下来。研究生开学的时候,坐在实验室无聊的我,突然想起了这件事,随后构思了一个域名,www.beikely.com 取“贝壳”的名字。后...
  • fall221
  • fall221
  • 2011年12月26日 13:27
  • 787

Simple Apocalypse - Cartoon Assets

  • 2016年09月01日 08:13
  • 21.84MB
  • 下载

bzoj3208 花神的秒题计划 记忆化搜索&暴力

C操作,直接修改高度 S,B操作,开一个bool数组记录能否滑行,暴力维护 Q操作,直接记忆化搜索 由于S,B,Q的总数 下附AC代码: #include #include #include ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 3208 Apocalypse Someday
举报原因:
原因补充:

(最多只允许输入30个字)