可以证明,每个符合的数都由2,3,5,7相乘得到。

依据猜想:下一个出现的数是由前面某个数乘上这几个数之一得到的新的数。

  假设之前的数均满足序列,则因为下一个数必有2,3,5,7相乘得到,而这个数之前的数已经是2,3,5,7组成的最小数,则该数必为之前的数再乘上2,3,5,7得到。

  可由最小堆实现。

  后发现将其分为由之前的数分别乘上这四个数得到4个序列,可以证明序列递增,故只需记录其中每个序列位置即可。

因此得到算法。

#include<cstdio>
#define MAXN (1e18)
#define Maxn 80000  //个数比想象中少很多
long long n,ans[Maxn+],p2,p3,p5,p7,f2[Maxn],f3[Maxn],f5[Maxn],f7[Maxn],all,a,b;
int main()
{
all=;
ans[]=;
p2=p3=p5=p7=;
for(int i=;i<Maxn;i++){
f2[i]=ans[i]*;
f3[i]=ans[i]*;
f5[i]=ans[i]*;
f7[i]=ans[i]*;
a=(f2[p2]>f3[p3]?f3[p3]:f2[p2]);
b=(f5[p5]>f7[p7]?f7[p7]:f5[p5]);
ans[i+]=a>b?b:a;
if(ans[i+]==f2[p2]) ++p2;
if(ans[i+]==f3[p3]) ++p3;
if(ans[i+]==f5[p5]) ++p5;
if(ans[i+]==f7[p7]) ++p7;
}
int t;
scanf("%d",&t);
while(t--){
scanf("%lld",&n);
printf("%lld\n",ans[n]);
}
return ;
}

poj3307的更多相关文章

  1. POJ3307+找规律

    /* 题意:求第N个productivity property数是谁. (productivity property数:就是这个数可以由另外的数的各个位上的乘积得到.) */ #include< ...

随机推荐

  1. VS查看工程项目代码行数

    ctrl+shift+F  查找选项选正则表达式  正则表达式 b*[^:b#/]+.*$或 ^b*[^:b#/]+.*$

  2. LoadRunner 学习笔记(3)基础

    LoadRunner包含的组件: Virtual User Generator 录制最终用户业务流程并创建自动化性能测试脚本,即 Vuser 脚本 Controller 组织.驱动.管理并监控负载测试 ...

  3. Notes of the scrum meeting(10/28)

    meeting time:4:00~6:00p.m.,October 28th,2013 meeting place:雕刻时光 attendees: 顾育豪                       ...

  4. android开发 PopupWindow 设置充满屏幕

    View qrcode_view = this.getLayoutInflater().inflate(R.layout.taskdetail_qrcode,null); final PopupWin ...

  5. NOI2014 全国互测Round2

    数据包:http://pan.baidu.com/s/1pJNSkL9 T1: 我们先直接用矩阵快速幂暴力 首先是0维,f1=1,f2=1 然后推出下一维的f1'和f2' 下一维的f1'和f2'其实就 ...

  6. 【DP】BZOJ 1260: [CQOI2007]涂色paint

    1260: [CQOI2007]涂色paint Time Limit: 30 Sec  Memory Limit: 64 MBSubmit: 893  Solved: 540[Submit][Stat ...

  7. 【BZOJ】【3052】【WC2013】糖果公园

    树分块 老早(大约一个月以前?)就听说这道神题了……orz rausen 一直拖到现在才做……发现还是不会呢= = 只好也去Orz了Hzwer和zky http://hzwer.com/5250.ht ...

  8. uva 757

    贪心  优先队列 #include <cstdio> #include <cstdlib> #include <cmath> #include <map> ...

  9. SQLite 学习流水账笔记

    1.SQLite随机取n行数据,可加自己的条件 SELECT * FROM TableName WHERE key ? ORDER BY RANDOM() LIMIT ,Num; 2.sql语句中查询 ...

  10. POJ1144 Network 无向图的割顶

    现在打算重新学习图论的一些基础算法,包括像桥,割顶,双连通分量,强连通分量这些基础算法我都打算重敲一次,因为这些量都是可以用tarjan的算法求得的,这次的割顶算是对tarjan的那一类算法的理解的再 ...