POJ 2247 小DP?
来源:互联网 发布:柔术 知乎 编辑:程序博客网 时间:2024/05/16 13:46
题意:定义H***数为质因子仅有2、3、5、7的数以及1,将所有的H***数排序,输出序列中第n个H***数。
说是DP。。也看不出来啥DP的特征,Openjudge是把这题分到DP一类里了。因为H***数仅由特定的质因子构成,所以每一个H***数都可以由已知的H***数乘2、3、5、7得来。我们预处理出数据范围n以内的所有H***数,O(1)查询。处理方式很简单,代码易懂。
唯一比较恶心的就是这道题的输出方式,考验英语基本功。→.→
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;int n, p2, p3, p5, p7, f[5845];int main(){ f[1] = n = p2 = p3 = p5 = p7 = 1; while(n < 5845) { f[++n] = min(min(f[p2]*2, f[p3]*3), min(f[p5]*5, f[p7]*7)); if(f[n]==f[p2]*2) p2++; if(f[n]==f[p3]*3) p3++; if(f[n]==f[p5]*5) p5++; if(f[n]==f[p7]*7) p7++; } while(scanf("%d", &n) && n) { printf("The %d",n); if (n%10==1 && n/10%10!=1) printf("st"); else if (n%10==2 && n/10%10!=1) printf("nd"); else if (n%10==3 && n/10%10!=1) printf("rd"); else printf("th"); printf(" humble number is %d.\n",f[n]); } return 0;}
0 0
- POJ 2247 小DP?
- 【POJ第100题小里程碑】2012.1.2 poj2353 DP
- POJ 3034 Whac-a-Mole(三维dp+处理小技巧)
- 小白算法练习 树状dp POJ anniversary party
- POJ 2411 + POJ 2663 + POJ 3420 小方格填充之多米诺骨牌系列(状压DP)
- 炮兵阵地(经典状压dp)(poj 1185) + 状压dp小技巧详解
- 小白算法练习 dp练习001-区间dp NYOJ 石子合并,整数划分 POJ Brackets
- poj dp
- 【dp】POJ
- 【dp】POJ
- [DP] POJ
- [DP] POJ
- [DP] POJ
- 【dp】POJ
- POJ 2411 大矩形用1X2小矩形填充 状态dp DFS
- uva 709 &poj 1093 - Formatting Text (dp之小白告一段落)
- POJ 2411 大矩形用1X2小矩形填充 状态dp DFS
- 小白算法练习 hdu 不要62 POJ 2282 the Counting problem 数位dp
- GCD的基本使用
- 二叉树的遍历--递归和非递归
- 径向基函数(RBF)神经网络
- multithreading--守护(后台)线程的作用,及其与前台线程的关系
- 初学Linux(1)
- POJ 2247 小DP?
- IOS开发笔记25-控件的基本使用
- jq实现方向轮播图-简易版
- 如何在AS3中引用swf中的元件、图片等资源以及布局信息
- 加载网络图片
- [小笔记] Android判断Bitmap图片是否损坏
- Android中string-array用法
- 第九周项目3-稀疏矩阵的三元组表示的实现及应用(1)
- 使用友元,编译出错fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 1786) 的解决