zoukankan      html  css  js  c++  java
  • hdu5747 Aaronson 贪心

    Aaronson

    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
    Total Submission(s): 425    Accepted Submission(s): 255


    Problem Description
    Recently, Peter saw the equation x0+2x1+4x2+...+2mxm=n. He wants to find a solution (x0,x1,x2,...,xm) in such a manner that i=0mxi is minimum and every xi (0im) is non-negative.
     
    Input
    There are multiple test cases. The first line of input contains an integer T (1T105), indicating the number of test cases. For each test case:

    The first contains two integers n and m (0n,m109).
     
    Output
    For each test case, output the minimum value of i=0mxi.
     
    Sample Input
    10 1 2 3 2 5 2 10 2 10 3 10 4 13 5 20 4 11 11 12 3
     
    Sample Output
    1 2 2 3 2 2 3 2 3 2
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<string>
    #include<vector>
    #include <ctime>
    #include<queue>
    #include<set>
    #include<map>
    #include<stack>
    #include<iomanip>
    #include<cmath>
    using namespace std;
    int main(){
        int t;
        int a[32];
        for(int i=0;i<31;i++){
            a[i]=(1<<i);
        }
        scanf("%d",&t);
        while(t--){
            int n,m;
            int ans=0;
            scanf("%d%d",&n,&m);
            int x =lower_bound(a,a+30,n)-a;
            for(int i=min(x,m);i>=0;i--){
           
                ans+=(n/a[i]);
                n%=a[i];
                if(n==0) break;
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    Linux 命令
    g++/gcc
    emacs lisp
    vim 快捷键
    emacs快捷键
    Valgrind 例子
    Valgrind
    gprof
    cppcheck
    gdb常用命令
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/5701309.html
Copyright © 2011-2022 走看看