hdu 1058 Humble Numbers 水题
来源:互联网 发布:程序员的自我修养图片 编辑:程序博客网 时间:2024/06/06 02:59
传送门http://acm.hdu.edu.cn/showproblem.php?pid=1058
不知道该怎么说的一道题, 暴力的复杂度比dp要低…..
//啊其实暴力复杂度多了一个log(n)
- 坑点…
111的序数词是111th…
大概已经是个英语废了/吐血
#include <stdio.h>#include <iostream>#include <algorithm>#include <string>using namespace std;string s;long long tmp, p7, p5, p3, p2, n, cnt, ans[10000];long long ppow(int a, int b) { long long ret = 1; for (int i = 0; i < b; ++i) ret *= a; return ret;}void init() { for (int i = 0; ; ++i) { tmp = 1; p7 = ppow(7, i); if (tmp * p7 > 3e9) break; for(int j = 0; ; ++j) { p5 = ppow(5, j); if (tmp * p7 * p5 > 3e9) break; for (int k = 0; ; ++k) { p3 = ppow(3, k); if (tmp * p7 * p5 * p3 > 3e9) break; for (int t = 0; ; ++t) { p2 = ppow(2, t); if (tmp * p7 * p5 * p3 * p2 > 3e9) break; ans[cnt++] = tmp*p7*p5*p3*p2; } } } } sort (ans, ans+cnt); return ;}int main() {// freopen("in.t", "r", stdin);// freopen("out.t", "w",stdout); init(); while (cin >> n && n) { if (n % 10 == 1) s = "st"; else if (n % 10 == 2) s = "nd"; else if (n % 10 == 3) s = "rd"; else s = "th"; if (n%100 == 11 || n%100 == 12 || n%100 == 13) s = "th"; cout << "The " << n << s << " humble number is " << ans[n-1] << "." << endl; } return 0;}
2017-09-08
阅读全文
0 0
- hdu 1058 Humble Numbers 水题
- HDU 1058 Humble Numbers
- hdu 1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU 1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU 1058 Humble Numbers
- hdu 1058 humble numbers
- hdu 1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU 1058 Humble Numbers
- HDU 1058 Humble Numbers
- HDU 1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU-1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU 1058 Humble Numbers
- HDU 1058 Humble Numbers
- Eclipse 如何配置 Tomcat
- C++调用WinSock api实现UDP传输
- 5、js基础:原型对象
- 运用Python运行cocos2dx-lua/js项目
- get与post根本区别以及乱码的处理
- hdu 1058 Humble Numbers 水题
- 自己整理的常用字符串校验和日期格式化工具类
- 排序汇总
- 数据挖掘之从数据中学习
- 第一个python程序
- LINUX学习日记(0)--虚拟机安装redhat7
- Chrome学习笔记(三):UI组件,皮肤引擎 —— 控件库
- Dubbo 发布恢复维护后的第一个版本 2.5.4
- 初识Linux