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】传说中POJ最难的数位DP?(正解AC自动机,二解数位DP,吾异与之)

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

HDU3208(区间指数和)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3208   题意:给两个数a和b,然后在闭区间[a,b]内的每一个数y都可以表示成x^k=y,要求x尽量最小...
  • ACdreamers
  • ACdreamers
  • 2013年09月03日 14:13
  • 1606

POJ 难度及题型题目分类

OJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094) 初期:...
  • u010871244
  • u010871244
  • 2013年07月16日 10:34
  • 1930

poj3208 Apocalypse Someday

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

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
  • 565

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

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

POJ 3208 Apocalypse Someday

二分+数位DP
  • SenyeLicone
  • SenyeLicone
  • 2017年04月25日 11:37
  • 170

【Today is Someday】

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

Simple Apocalypse - Cartoon Assets

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

Cyber Survival Manual From Identity Theft to The Digital Apocalypse and epub

  • 2017年10月11日 14:17
  • 6.17MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 3208 Apocalypse Someday
举报原因:
原因补充:

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