第七周訓練總結(二)

2021-08-09 09:17:18 字數 1184 閱讀 7720

這週末時間比較充裕,有時間複習專業課,也有時間昨acm。這幾天主要還是做題,因為馬上要截止,所以比較積極。

i題:題意:給你乙個序列,有兩個操作,1是將區間[a,b]內滿足 (i - a) % k == 0的位置加上c,2是查詢a位置的數。

解題思路:因為k比較小,所以可以對於每乙個k建立乙個樹狀陣列,這樣還不夠,無法確定應該向哪個位置加數,再加一維表示模k的餘數,這樣建立就行了。對於更新,我們只需要對f[k][a%k][x]的樹狀陣列更新,因為是區間更新,可以考慮加一段和剪一段,在a這個位置更新c,在b+1的位置減去c就不影響後面了。查詢就普通查詢,注意要加上初始值。

h題:題意:先輸入n和k,接下來n個操作,有兩種操作,i和q,i的話輸入數,q的話輸出第k個大的數。

解題思路:用優先佇列降序儲存輸入的數字,一旦佇列的元素個數大於k,則將隊首元素刪除,這樣就能保證隊首元素為第k大的數

。因為如果有新的數插入時應該是第k大的數,則會插入到現在大的第k大的數的後面,刪除隊頂元素後,對首就是剛剛插入的數了。如果是較小的數,則會插在隊首,刪除隊首之後,仍然不會影響第k大的數

。題意:在一塊兒宣傳欄中貼宣傳單,規定寬度相同,長度不同。按一定順序貼,給出宣傳單的起始和結束位置,這裡位置不能忽略成點(而是一段長度),問最後會看到幾個宣傳單。

解題思路:由於給出的資料範圍多大,所以要先進行離散化減少複雜度,因為這裡給出的不是」點「是帶長度的,所以一般的離散化會出現離散失真,這裡可以在離散的時候增加技巧,即在不相鄰的資料裡增加分隔點,凸顯不連續。然後進行線段樹成段替換,最後求出整個區間的不同宣傳單個數。

這幾天做的

專題,總是

遇到一些題,資料很大,如果直接建樹,會造成記憶體超出限制,

所以要進行離散化。

又把離散化複習了一下。

模型:int seg[maxn][2];//儲存原來的點

struct node

mat[maxn<<1]

for(.....)

sort(mat,mat+2*n,cmp);

for(.....)

if(mat[i].line<0) //左邊,line 存的就是第i+1條邊

seg[-mat[i].line-1][0]=ans;//離散這條邊的左端

else

seg[mat[i].line-1][1]=ans;//離散這條邊的右端

}

第七周總結

3.1 索引特點 很容易想到 mysql 索引可以大大提高檢索速度 優點 1.通過建立唯一索引,保證資料表每行資料的唯一性 2.大大加快資料查詢速度 3.在使用分組和排序進行資料查詢時,可以顯著減少查詢中分組和排序的時間 缺點 1.維護索引需要耗費資料庫資源 2.索引需要占用磁碟空間,索引檔案可能比...

第七周總結

在本週的學習之中,我愈發的感覺前端的內容之廣闊,知識量確實不少,但這些知識可以通過不同方式的應用實現各種各樣的功能,就拿線面的乙個花瓣來說。裡面的東西確實不複雜,但實現的效果卻是相當可觀的 body wrap hua07 huaban wrap hover hua01 wrap hover hua0...

第七周總結

2019第七周作業 本週作業頭 這個作業屬於那個課程 c語言程式設計ii 這個作業要求在 我在這個課程的目標是 理解指標陣列和位址之前的關係及應用 這個作業在那個具體方面幫助我實現目標 practice 參考文獻 教科書6 2 每個單詞的最後乙個字母改成大寫 10 分 函式fun的功能是 將p所指字...