CFR 349 B. Color the Fence ( Greedy )
http://codeforces.com/contest/349/problem/BProblem - B - Codeforces
題意:
給初始金錢和每一個數字產生的花費,數字可以以字串方式連接,求可造的最大數字。
解法:
透過最少花費,先計算最長長度是多少。接著貪心取當前不會讓最長長度無法達到的前提下的最大數字。
int V; vi A; void init(){ cin >> V; A = vi( 10 ); for( int i = 1; i <= 9; ++i ) cin >> A[ i ]; } void preprocess(){ } void solve(){ int minc = INF; for( int i = 1; i <= 9; ++i ) upmin( minc, A[ i ] ); int len = V / minc; if( len == 0 ){ cout << -1 << endl; return; } while( len ){ for( int i = 9; i >= 1; --i ) if( V >= A[ i ] and ( V - A[ i ] ) / minc == len - 1 ){ cout << i, V -= A[ i ], --len; break; } } cout << endl; }