202006 2 稀疏向量

2021-10-10 15:12:30 字數 601 閱讀 9825

試題編號: 202006-2

試題名稱: 稀疏向量

時間限制: 2.0s

記憶體限制: 512.0mb

最開始用結構體寫的,思路和用map差不多,但是一直執行超時,然後換用map寫的最後滿分過了。輸入第乙個向量將值和下標都存到map裡,輸入第二個向量時進行判斷,如果輸入的下標在map裡的值不為零,說明該位置兩個向量都有值,將兩個值的積累加到和裡。

還需要注意的是最後輸出的總和在最開始定義時要定義為long long型,long int不足以滿足資料長度,只能得到60分。

#

include

using

namespace std;

intmain()

for(i =

1; i <= b; i++

) cout << result << endl;

}

202006 2 稀疏向量

因為n太大了,所以得用map來存一下,同時可以記錄一下出現過哪些index,記錄一下,然後遍歷map,如果同乙個位置,兩個向量在這裡都非0.那麼項乘加到結果上。include include include include include include include using namespac...

CCF202006 2 稀疏向量

1,這題看完資料規模 1e6 1e6 就應該知道兩次迴圈是會超時的 但還是不死心試了一次,最後執行超時 30分 2,第二次換成雙指標了,複雜度降到了一階,但還是超時了,最後70分,想了想應該沒法繼續改進演算法降低複雜度了,所以估計是輸入輸出的問題 3,把cin cout 換成scanf printf...

CCF 202006 2 稀疏向量 c

既要考慮時間複雜度又要考慮空間複雜度,雖然能輕鬆拿到30 60分,但想要拿100還的確要下點功夫。注意的點 1 測試點7,8,9,10資料規模太大,不可使用下標去表示向量位置。就算把陣列開到堆區還是不夠去表示的。這也有失稀疏矩陣的原意。空間不夠。2 不可使用兩層for迴圈去遍歷。時間不夠。長度 62...