挑戰題43 最少運算元

2021-10-05 04:35:31 字數 669 閱讀 1784

43 最少運算元

問題描述 :

陣列a中共有n個元素,初始全為0。你可以對陣列進行兩種操作:1、將陣列中的乙個元素加1;2、將陣列中所有元素乘2。求將陣列a從初始狀態變為目標狀態b所需要的最少運算元。

輸入說明 :

第一行乙個正整數n表示陣列中元素的個數

第二行n個正整數表示目標狀態b中的元素

n<=50,b[i]<=1000

輸出說明 :

輸出一行表示最少運算元

輸入範例 :

27 8

輸出範例 :

解決思路:

1.逆推思想

2.求最少運算元(奇數與偶數分開求解)

#include

intmain()

if(number[i]!=0

) flag=1;

}if(flag==0)

break

;//全部算完了

for(i=

0;i) number[i]

=number[i]/2

;//偶數統一除以2

count++;}

printf

("%d\n"

,count)

;return0;

}

從後往前插生成指定序列最少運算元

acm 題目 給定兩個 1 n 的排列 a 和 b。定義一種操作 每次可以取出 a的最後乙個數,然後插入到 a 的任意乙個位置 任意兩個數中間或者最前面 現在要把 a 轉化為 b,問最少需要幾次操作 ps 這道題wa了無數遍,一次次嘗試終於嘗試出正確做法.解法 我們可以知道如果前面的排亂了,那麼最後...

挑戰題一(3)

設計課程 course 結構 如 p50例 2 2 1 過載 運算子,查詢出課程名為 英語 的記錄 2 過載 運算子,查詢出開課學時為 72的所有記錄 3 過載 運算子,查詢出開課學時 80 的所有課程記錄。設計main 函式,先建立 p51的表 2 1,然後實現上述功能。根課本的例子基本一致 但我...

Python挑戰第三題

根據經驗,給出大字串在網頁源 注釋中!一看應該是字串處理,找被三個大寫字母左右包圍的小寫字母。那就用最方便的正規表示式處理。import urllib2 import re f urllib2.urlopen data f.read reg re.compile a z a z a z a z a ...