2016青岛online——I count two three
来源:互联网 发布:淘宝云客服报名入口 编辑:程序博客网 时间:2024/05/17 06:02
传送门
题意:输入n,求出能分解为2^a*3^b*5^c*7^d的大于n的最小数
基本思路:打表写出所有能分解为2^a*3^b*5^c*7^d的数,然后二分查找,lower_bound
复杂度:32*21*13*11
一开始不会的原因:想到要打表,但是不知道怎么入手,有多少个数,做题少
解决:2:0~31;3:0~20;5:0~12;7:0~10.最多32*21*13*11个,实际上远少于这个
坑点:一定要注意会不会爆。
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long long ll;const int MAXN=1e9+1e5;//+1e5是为了保证打出的表包括n为1e9时int ans[103500];//32*21*13*11int main(){ll p;int tot=0;//打表,预处理 for(int i=0;i<=31;i++){for(int k=0;k<=20;k++){for(int m=0;m<=13;m++){for(int n=0;n<=10;n++){p=pow(2,i)*pow(3,k);if(p>=MAXN){continue;}else{p*=pow(5,m);if(p>=MAXN){continue; } else{p*=pow(7,n);if(p>=MAXN){continue;}else{ans[tot++]=(int)p;}}}}}}}//printf("%d\n",tot);//sort(ans,ans+tot);//for(int i=0;i<100;i++)//{//printf("%d\n",ans[i]);//}
//排序,以便二分 sort(ans,ans+tot); int t; scanf("%d",&t); int n; while(t--) {scanf("%d",&n);
//前闭后开,返回大于等于n的第一个位置int index=lower_bound(ans,ans+tot,n)-ans;printf("%d\n",ans[index]); } }
0 0
- 2016青岛online——I count two three
- HDU 5878 I Count Two Three 2016青岛网赛
- 青岛网赛1001 HDU5878 I Count Two Three
- hdu5878 I Count Two Three -ICPC网络赛青岛赛区
- HDU 5878 I Count Two Three 青岛网络赛
- HDU 5878 I Count Two Three(2016亚洲区青岛站网络赛)
- 2016ICPC网赛青岛站1001 I Count Two Three丑数的应用求解
- hdu 5878 I Count Two Three 2016ACM/ICPC青岛赛区网络赛1001
- 2016 ACM/ICPC 青岛区域赛网络赛 1001 I Count Two Three(打表+二分)
- HDOJ 5878 I Count Two Three 【2016青岛网赛】暴力打表+二分枚举
- 2016 ACM/ICPC 青岛赛区网络赛 I Count Two Three
- I Count Two Three
- HDU 5878 I Count Two Three (暴力) 2016 ACM/ICPC Asia Regional Qingdao Online
- HDU 5878 I Count Two Three 2016 ACM/ICPC Asia Regional Qingdao Online 1001
- HDU 5878 I Count Two Three (2016 ACM/ICPC Asia Regional Qingdao Online 1001)
- hdu 5878 I Count Two Three ICPC青岛站网络赛1001
- HDU5878——I Count Two Three(2016年青岛区域赛网络赛)
- 5878 I Count Two Three
- iOS动画详解
- 二叉树中两个节点的最近公共节点
- U盘启动安装Cent0S 6.4安装中问题:安装程序试图挂载映像#1,但在硬盘上无法找到该映像...
- Linux服务器网络故障诊断
- Gradle命令行黑魔法
- 2016青岛online——I count two three
- SQL中inner join、outer join和cross join的区别
- Java基础2面向对象:透析类的加载与初始化 对象的初始化 zongjihengfei
- 分类问题之逻辑回归
- Leetcode 381. Insert Delete GetRandom O(1) - Duplicates allowed 可重复常数增删改系统 解题报告
- Servlet入门学习笔记
- 转换字符集----java
- iOS开发 适配iOS10以及Xcode8
- MySQL学习笔记(一)