基礎演算法 快速求和(從爆 暴搜到記憶化再到)

2021-09-01 15:27:38 字數 742 閱讀 8923

【基礎演算法】快速求和

時間限制: 10 sec 記憶體限制: 256 mb

題目描述

給定乙個數字字串,用最少次數的加法讓字串等於乙個給定的目標數字。每次加法就是在字串的某個位置插入乙個加號。在需要的所有加號都插入後,就象做普通加法那樣來求值。 例如,考慮字串"12",做0次加法,我們得到數字12。如果插入1個加號,我們得到3。因此,這個例子中,最少用1次加法就得到數字3。 再舉一例,考慮字串"303"和目標數字6,最佳方法不是"3+0+3",而是"3+03"。能這樣做是因為1個數的前導0不會改變它的大小。 寫乙個程式來實現這個演算法。

輸入

第1行:1個字串s(1<=length(s)<=20)和1個整數n(n<=2^9-1)。s和n用空格分隔。

輸出

第1行:1個整數k,表示最少的加法次數讓s等於n。如果怎麼做都不能讓s等於n,則輸出-1。

樣例輸入

2222 8
樣例輸出單純dfs

演算法基礎入門 序列求和

求和要注意兩點 1.資料規模大小 2.執行效率 求1 2 3 n的值。輸入包括乙個整數n。輸出一行,包括乙個整數,表示1 2 3 n的值。1 n 1,000,000,000 n 1,000,000,000的值超出32位整數int範圍 序列求和,最先想到的肯定是迴圈n2,但當資料規模很大時,暴力迴圈就...

基礎演算法 快速排序演算法

時間複雜度 最壞的情況和氣泡排序一樣,為o n 2 平均的時間複雜度 nlog n 基本思想 1 取最左邊的數作為標準 2 從右邊開始查詢,找到從右邊數第乙個小於標準temp的數 3 從左邊繼續查詢,找到第乙個大於標準temp的數 4 將左右兩邊找到的數進行交換,如此往復,直到左邊和右邊碰到一起,即...

演算法基礎 快速排序

要求 10分鐘內寫出快排!之前筆試用到排序演算法,總是想用快排但是又不能在規定時間寫出來,歸根到底還是快排的邏輯步驟沒有搞清,所以才導致每次失敗!徹底搞清快排動作邏輯,這樣即使長時間不用也能臨時寫出來!思路 1.就像選擇排序每排一次序排好最小 大值一樣,快速排序每排一次序 會 將中軸值 預設取陣列第...