zoukankan      html  css  js  c++  java
  • Topcoder SRM 596 DIV 1



    250 IncrementAndDoubling

    class IncrementAndDoubling {
    	private:
            int n;
            int a[55];
            bool ok(){
                for (int i=0;i<n;i++){
                    if (a[i]!=0) return false;
                }
                return true;
            }
            int check(){
                int res=0;
                for (int i=0;i<n;i++){
                    if (a[i]&1){
                        res+=1;
                        a[i]-=1;
                    }
                }
                return res;
            }
            int doubi(){
                int res=0;
                for (int i=0;i<n;i++){
                    if (a[i]){
                        a[i]/=2;
                        res=1;
                    }
                }
                return res;
            }
    	public:
    	int getMin(vector <int> desiredArray) {
            int res=0;
            n=sz(desiredArray);
            for (int i=0;i<n;i++) a[i]=desiredArray[i];
            while (!ok()){
                res+=check();
                res+=doubi();
    //            cerr<<res<<endl;
    //            for (int i=0;i<n;i++) cerr<<a[i]<<" ";cerr<<endl;
    //            cerr<<endl;
            }
            return res;
    	}
    };


  • 相关阅读:
    leetcode211
    leetcode209
    leetcode201
    leetcode1396
    leetcode1395
    leetcode1394
    leetcode1386
    leetcode1387
    leetcode1382
    leetcode1376
  • 原文地址:https://www.cnblogs.com/cyendra/p/3681543.html
Copyright © 2011-2022 走看看