【POJ3208】 (DP)
Apocalypse SomedayDescription
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
187Sample Output
1666
2666
66666
【题意】
询问第k大含“666”的数。
【分析】
DP,考虑下面填数方案:

反正我就用这种笨方法了~~
代码如下:
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
#define INF 0xfffffff
#define LL long long LL f[],d[]; void pri(int x,LL y)
{
int z=;
LL yy=y;
while(yy) z++,yy/=;
for(int i=;i<=x-z;i++) printf("");
if(y!=) printf("%I64d",y);
} int main()
{
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
int T;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
f[]=;f[]=f[]=;
d[]=;d[]=;
for(int i=;i<=;i++) d[i]=d[i-]*;
for(int i=;i<=;i++)
{
f[i]=d[i-]+(f[i-]+f[i-]+f[i-])*;
}
for(int i=;i<=;i++) if(f[i]>=n&&f[i-]<n)
{
LL now=n-f[i-];//减掉开头为0
for(int j=i;j>=;j--)//枚举填数
{
for(int k=;k<=;k++)//填1~9
{
if(j==i&&k==) continue;
LL x;
if(k==) x=f[j-]*+f[j-]*+d[j-];
else x=f[j-];
if(now>x) now-=x;
else
{
if(k==)
{
LL y;
if(now<=*f[j-])
{
y=(now-)/f[j-];
now=now%(f[j-]);now=now==?f[j-]:now;
printf("6%I64d",y);j--;break;
}now-=*f[j-];
if(now<=*f[j-])
{
y=(now-)/f[j-];
now=now%(f[j-]);now=now==?f[j-]:now;
printf("66%I64d",y);j-=;break;
}now-=*f[j-];
if(now<=d[j-])
{
printf("",now);
if(j!=) pri(j-,now-);
j=;break;
}now-=d[j-];
if(now<=*f[j-])
{
y=(now-)/f[j-];
now=now%(f[j-]);now=now==?f[j-]:now;
printf("66%I64d",y+);j-=;break;
}now-=*f[j-];
y=(now-)/f[j-];
now=now%(f[j-]);now=now==?f[j-]:now;
printf("6%I64d",y+);j--;break;
}
else printf("%d",k);
break;
}
}
}
break;
}
printf("\n");
}
return ;
}
[POJ3208]
2016-07-17 10:03:41
【POJ3208】 (DP)的更多相关文章
- 【STSRM10】dp只会看规律
[算法]区间DP [题意]平面上有n个点(xi,yi),用最少个数的底边在x轴上且面积为S的矩形覆盖这些点(在边界上也算覆盖),n<=100. [题解]随机大数据下,贪心几乎没有错误,贪心出奇迹 ...
- CS academy Growing Trees【模板】DP求树的直径
[题意概述] 给出一棵树,树上的边有两个值a和b,你可以在[0,limit]范围内选择一个整数delta,树上的边的权值为a+b*delta,现在问当delta为多少的时候树的直径最小.最小直径是多少 ...
- 【USACO】DP动态规划小测(一)
{20160927 19:30~21:30} 总分400分,我113.33,稳稳地垫底了......(十分呼应我上面的博客名,hhh~)过了这么多天我才打完所有代码,废话我也就不多说了.不过,虽然时间 ...
- 【专章】dp基础
知识储备:dp入门. 好了,完成了dp入门,我们可以做一些稍微不是那么裸的题了. ----------------------------------------------------------- ...
- 【专章】dp入门
动态规划(简称dp),可以说是各种程序设计中遇到的第一个坎吧,这篇博文是我对dp的一点点理解,希望可以帮助更多人dp入门. ***实践是检验真理的唯一标准,看再多文章不如自己动手做几道!!!*** 先 ...
- 【算法】DP解决旅行路径问题
问题描述 : After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice ...
- 【POJ3208】Apocalypse Someday
Description 666号被认为是神秘的"野兽之数",在所有以启示录为主题的大片中都是一个被广泛使用的数字.但是,这个数字666不能总是在脚本中使用,所以应该使用1666这样 ...
- 【BZOJ1084】dp
题目很简单 分析蛮无聊的一道题.状态转移十分显然然后就做完了. #include <bits/stdc++.h>#define sc(n) scanf("%d",&am ...
- 【基础】dp系列1
序列双段最大子段和问题 (也许很水但蒟蒻刚刚学dp就来记录一下) 题目链接 题意就是求序列中的任意两段的最大子段和最大. 我们先预处理出来前缀和,方便求最大子段和. 对于每一个i都求一遍1到i的最大子 ...
随机推荐
- Freemarker学习中遇到的问题
在网上找到了尚学堂的视频,同时有书和源码等资料.但是在跟着练习的过程中,代码运行报了错: 2015-7-20 22:26:40 freemarker.log.JDK14LoggerFactory$JD ...
- ashx+html+ajax
HTML: $(function() { ajax("NewsList.ashx", function(resText) { document.getElementById(&qu ...
- HDU 5637 Transform
题意: 有两种变换: 1. 改变此数二进制的某一位(1变成0 或者 0变成1) 2. 让它与给出的n个数当中的任意一个做异或运算 给你两个数s, t,求从s到t最少要经过几步变换,一共m组查询思路: ...
- 第一篇:杂项之pymysql连接池
杂项之pymysql连接池 杂项之pymysql连接池 本节内容 本文的诞生 连接池及单例模式 多线程提升 协程提升 后记 1.本文的诞生 由于前几天接触了pymysql,在测试数据过程中,使用普 ...
- C#中的static静态变量的用法
静态全局变量 定义:在全局变量前,加上关键字 static 该变量就被定义成为了一个静态全局变量. 特点: A.该变量在全局数据区分配内存. B.初始化:如果不显式初始化,那么将被隐式初始化为0. 静 ...
- Linux - 扩展
每次输入命令行按下 Enter 键时,bash 都会在执行命令之前对文本进行多重处理.比如 "cd ~" 中的 "~" 的会被识别为当前用户的主目录.产生这个结 ...
- Lucene技术杂谈
Lucene教程 1 lucene简介 1.1 什么是lucene Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么 ...
- JS 頁面實時更新時間
function startTime() { var today = new Date(); //定义日期对象 var yyyy = today.getFullYear(); //通过日期对象的get ...
- 懒人神器之T4模板
最近遇到一个比较令人烦躁的问题,特别是对于我等懒癌末期者.实在难以忍受!具体问题是这样,这个项目是一个新的项目.使用EF框架来开发,那么在搭建架构时,当我们新加一个Entity时,就需要在每个层级添加 ...
- 【FJOI2014】【偏导+数学】病毒防护带
转载:http://trinklee.blog.163.com/blog/static/23815806020150155296528/ 问题描述: 众所周知,在国王胖哥的带领下,K国国泰民安,空前繁 ...