zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 116 (Rated for Div. 2)

    我进行了分类讨论大于100000000000000一类,小于100000000000000一类;

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    int main(){
        int t;
        scanf("%d",&t);
        while(t--){
            ll k=0,a,b,sum,n,ans=0;
            scanf("%lld %lld",&a,&b);
            sum=1,n=0;
            if(a<100000000000000){
                for(int i=0;;i++){            
                    if(k<b){
                         k=pow(2,i);
                         if(k>b){
                             k=b;
                        }
                    }
                    else k=b;
                    sum+=k;    
                    if(a==1&&b>0){
                         printf("0\n");
                         break;
                    }
                    if(a>sum){
                         n++;
                    }
                    else if(a==sum){
                         printf("%lld\n",n+1);
                         break;
                    } 
                    else if(a<sum){
                         printf("%lld\n",n+1);
                         break;
                    }
                }
            }
            else {
                if(a==1) printf("0\n");
                else if(b==1) printf("%lld\n",a-1);
                for(int i=0;a>1&&b>1;i++){             
                    if(k<b){
                        k=pow(2,i);
                    if(k>b){
                        k=b;
                    }
                    sum+=k;
                    if(a>sum){
                        n++;        
                    }
                    if(a<=sum){
                        printf("%lld\n",n+1);
                        break;
                        }     
                    }
                    else break;
                }
                if(a>sum&&a!=1&&b!=1){
                    sum=a-sum;
                    ans=sum%b;
                    sum/=b;
                    if(ans==0){
                        printf("%lld\n",sum+n);
                    }
                    else printf("%lld\n",sum+n+1);
                }
            }
        }
        return 0;
    } 
  • 相关阅读:
    数据类型
    表达式
    类型
    go杂货铺
    rest framework
    go 学习之路(三)
    go 学习之路(二)
    文件管理之字符处理命令,打包压缩
    文件管理之文件查找,上传下载,输出重定向
    文本命令之三剑客初探
  • 原文地址:https://www.cnblogs.com/happycrazy/p/15808579.html
Copyright © 2011-2022 走看看