zoukankan      html  css  js  c++  java
  • HDU 4952 Number Transformation 多校8 机智数学

    哎。这个题想了好久,状态不对啊。。。一个大家都出的题。。当时想到肯定是可以有什么规律来暴力,不用算到10的10次方

    对于某个k,x。从1到k循环,每次求一个新的x,这个x要大于等于原x,并且要是i的倍数。。。

    一直觉得有规律可循,后来知道就是倍数,我们设倍数为 b, 则b2*(i+1)>=b1*(i);可以知道b2>=b1-b1/(i+1),则,b2在b1小于等于i+1的时候便不会再变换,题目最大的倍数为10的10次方,根据第一个式子,最多经过10的五次方,倍数就会缩为10的五次方,此时i也>=10的五次方,不会再变换了,。。、所以最多为10的五次方就可以over了

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #define LL __int64
    using namespace std;
    LL n,k;
    int main()
    {
        int kase=0;
        while (scanf("%I64d%I64d",&n,&k)!=EOF)
        {
            if (!n && !k) break;
            LL bei=n;
            bool flag=1;
            for (LL i=1;i<=k;i++){
                LL tmp=n/i;
                if(tmp*i!=n){
                    bei=tmp+1;
                    n=bei*i;
                }
                else{
                    bei=tmp;
                }
                if (bei<i+1 && i<k){
                    flag=0;
                    break;
                }
            }
            if (!flag)
            n=bei*k;
            printf("Case #%d: ",++kase);
            printf("%I64d
    ",n);
        }
    }
  • 相关阅读:
    Pandas基本命令
    python——内建模块instance的学习
    pyhton——logging日志模块的学习
    mongoDB集群的搭建
    goahead(web服务器)分析
    2019-9
    cmake
    mqtt+htttp+websocket
    u-boot中filesize环境变量【转载】
    cppcheck下载及使用
  • 原文地址:https://www.cnblogs.com/kkrisen/p/3918540.html
Copyright © 2011-2022 走看看