博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
杭电ACM——humble numbers(DP)
阅读量:4049 次
发布时间:2019-05-25

本文共 697 字,大约阅读时间需要 2 分钟。

突破口:状态是线性的,只需一维数组dp[n]。dp[i]表示第i个humble number,humble numbers是递增序列,因此dp[i]>dp[i-1],且是第一个大于dp[i-1]的,dp[i]一定是由前面某个数乘上2,3,5或7得到的。先用2去乘dp[i-2]及其后面的数,直到2×dp[k]<=dp[i-1],此时记录下2×dp[k+1]的值,改用3×dp[k]及其后面的数,直到3×dp[l]<=dp[i-1],记录下3×dp[l+1]的值,再改用5,如此重复,找出其中最小的数,即为dp[i]。

代码如下:

#include
#include
#include
#include
#include
#define most 2000000000long long dp[5850];long long a[4]={2,3,5,7}; //辅助数组using namespace std;int main(){ int n,i,j,k; long long temp; for(i=1;i<=10;i++) dp[i]=i; for(i=11;i<=5842;i++) { k=0;temp=2000000001; //temp用来记录最终得到的四个数中最小的那一个 for(j=i-2;j>=0;) { if(a[k]*dp[j]>dp[i-1]) { j--; } else { if(a[k]*dp[j+1]

转载地址:http://ybdci.baihongyu.com/

你可能感兴趣的文章
[关注大学生]李开复给中国计算机系大学生的7点建议
查看>>
[茶余饭后]10大毕业生必听得歌曲
查看>>
gdb调试命令的三种调试方式和简单命令介绍
查看>>
C++程序员的几种境界
查看>>
VC++ MFC SQL ADO数据库访问技术使用的基本步骤及方法
查看>>
VUE-Vue.js之$refs,父组件访问、修改子组件中 的数据
查看>>
Vue-子组件改变父级组件的信息
查看>>
Python自动化之pytest常用插件
查看>>
Python自动化之pytest框架使用详解
查看>>
【正则表达式】以个人的理解帮助大家认识正则表达式
查看>>
性能调优之iostat命令详解
查看>>
性能调优之iftop命令详解
查看>>
非关系型数据库(nosql)介绍
查看>>
移动端自动化测试-Windows-Android-Appium环境搭建
查看>>
Xpath使用方法
查看>>
移动端自动化测试-Mac-IOS-Appium环境搭建
查看>>
Selenium之前世今生
查看>>
Selenium-WebDriverApi接口详解
查看>>
Selenium-ActionChains Api接口详解
查看>>
Selenium-Switch与SelectApi接口详解
查看>>