美文网首页
上交OJ-1012. 增长率问题

上交OJ-1012. 增长率问题

作者: code猪 | 来源:发表于2018-05-17 22:16 被阅读15次

1012. 增长率问题


Description

有一个数列,它是由自然数组成的,并且严格单调上升。最小的数不小于S,最大的不超过T。现在知道这个数列有一个性质:后一个数相对于前一个数的增长率总是百分比下的整数(如5相对于4的增长率是25%,25为整数;而9对7就不行了)。现在问:这个数列最长可以有多长?满足最长要求的数列有多少个?

Input Format

输入仅有一行,包含S和T两个数( 0<S<T≤200000 )。

30%的数据,0<S<T≤100 ;

100%的数据,0<S<T≤200000。

Output Format

输出有2行。第一行包含一个数表示长度,第二行包含一个数表示个数。

Sample Input

2 10

Sample Output

5
2

样例解释

2 4 5 6 9以及2 4 5 8 10

分析

这道题使用动态规划分析,其关键在于:
(tmp-i)/i=j/100
展开则有:tmp=i+ij/100,即ij能被100整除。

#include <iostream>

using namespace std;

int main()
{
    long long int max_length[200000], max_num[200000];
    int s,t;
    int i,j;
    int tmp;
    long long int maxl=1,maxn; //注意溢出,和最少一个
    cin>>s>>t;
    maxn=t-s+1; //当为一个的时候,其可以有这么多个,考虑质数情况
    for(i=s; i<=t; i++)
        max_length[i]=max_num[i]=1;
    for(i=s; i<=t; i++) {
        for(j=1; j<=100; j++){
            if((i*j)%100 == 0) {
                tmp=i+(i*j)/100;
                if(tmp<=t) {
                    if(max_length[i]+1 > max_length[tmp]) {
                        max_length[tmp] = max_length[i]+1;
                        max_num[tmp]=max_num[i];
                    }
                    else if(max_length[i]+1==max_length[tmp])
                        max_num[tmp]+=max_num[i];
                    if(max_length[tmp]>maxl) {
                        maxl=max_length[tmp];
                        maxn=max_num[tmp];
                    }
                    else if(max_length[tmp]==maxl) 
                        maxn+=max_num[i];
                }
            }
        }
    }
    cout<<maxl<<endl<<maxn<<endl;
    return 0;
}

相关文章

  • 上交OJ-1012. 增长率问题

    1012. 增长率问题 Description 有一个数列,它是由自然数组成的,并且严格单调上升。最小的数不小于S...

  • 第二季度趋势展望

    1、第一季度收益率回顾 主流币季度增长率: 平台币季度增长率: IEO 上交易所增长率: 2、小结 由上面的数据可...

  • 公务员考试笔记(十)

    资料分析联系总结: 1、增长+%→增长率问题(混合增长率/间隔增长率) 2、两个时间+比重→两期比重问题 a、b比...

  • 增长率问题

    阅读《生长数学:卜以楼初中数学教学主张》第3天 417~424页,《“增长率问题”复习课的教学设计及分析》 从知识...

  • 【资料分析速算技巧三】平均值增长率问题

    ​资料分析平均值增长率问题是常考的一类题目,今天我们学习一种快速解决此类问题的方法。 什么是平均值增长率问题? 一...

  • 第二天(增长率,倍数,增长量)

    9. 增长率 与 倍数 (23:30) 增长率 = 倍数 - 1 倍数 = 增长率 + 1 10. 增长率(增速)...

  • 资料技巧

    间隔增长率 平均增长率

  • 【资料分析速算技巧四】混合增长率

    资料分析混合增长率是常考的一类题目,今天我们学习一种快速解决此类问题的方法。 什么是混合增长率? 一、【题目特征】...

  • 资料分析年均增长率问题

    1.2010年-2013年的年均增长率是 直接用2013-2010=3来算 2.计算2009-2012这四年的平均增长率

  • BI技巧丨增长率问题

    BOSS:白茶,能不能做个柱形图带折线的?白茶:可以啊,老板!BOSS:(看来这个比较简单)能不能做出环比增长和下...

网友评论

      本文标题:上交OJ-1012. 增长率问题

      本文链接:https://www.haomeiwen.com/subject/deoidftx.html