CCF認證 稀疏向量(python語言100分)

2021-10-24 12:35:44 字數 592 閱讀 6364

這道題如果光是使用input()函式的話,後面幾個大的測試用例光是讀取輸入就已經超時了。

所以就一次的讀取好了,使用sys模組

用sys.stdin.read()函式一次讀取所有資料

下面這個**是乙個大佬的,ctrl+d 結束輸入

import sys

n,a,b=

map(

int,

input()

.split())

v=list

(map

(int

,sys.stdin.read(

).split())

)i=0j=

0s=0while iif v[i*2]

==v[

(a+j)*2

]:s+=v[i*2+

1]*v[(a+j)*2

+1] i+=

1 j+=

1elif v[i*2]

(a+j)*2

]:i+=

1else

: j+=

1print

(s)

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...

CCF 202006 2 稀疏向量 簡單題解

建立乙個map只儲存第乙個向量的非零維度,第二個向量邊輸入邊尋找第乙個向量是否存在相同的維度,如果存在則相乘累加。ccf試題2020.7.28做的.cpp 此檔案包含 main 函式。程式執行將在此處開始並結束。include include using namespace std 10 3 4 4...