ACM學習第二週

2021-10-17 11:05:52 字數 1411 閱讀 9296

• 二分

• 字首和與差分

• 位運算

整數型二分

//有兩個模板 

//模板一 (尋找第乙個大於等於x的數 )

//[l,mid],[mid+1,r]

int erfen

(int x , int m)

if(b[l]

==x)

return1;

else

return-1

;}//模板二(尋找最後乙個大於等於x的數)

//[l,mid-1],[mid,r];

int bsearch_2

(int l, int r)

return l;

}

浮點型二分

//校驗函式

bool check

(double x)

//下面是主框架

double left =

-1e6

;//左邊界。可以根據題目具體查詢條件修改

double right =

1e6;

//右邊界。可以根據題目具體查詢條件修改

double eps =

1e-9

;//精度

double mid;

//中值

while

(fabs

(right-left)

>eps)

else

}//left就是最終的結果

一維字首和

s[i] = a[1] + a[2] + ... a[i]

a[l] + ... + a[r] = s[r] - s[l - 1]

二維字首和

s[i, j] = 第i行j列格仔左上部分所有元素的和

以(x1, y1)為左上角,(x2, y2)為右下角的子矩陣的和為:

s[x2, y2] - s[x1 - 1, y2] - s[x2, y1 - 1] + s[x1 - 1, y1 - 1]

一維差分

給區間[l, r]中的每個數加上c:b[l] += c, b[r + 1] -= c

輸出a[i]的方式 :d[i]+=d[i-1]

二維差分

給以(x1, y1)為左上角,(x2, y2)為右下角的子矩陣中的所有元素加上c:

第二週總結ACM

這週是對上週所學的兩個演算法加以鞏固的一周,上週我學習了兩個演算法分別是 最小生成樹和並查集 這兩個演算法的簡單使用還是沒有問題的,並查集提公升中包含了乙個種類並查集,對於它我並沒有很好地掌握,下週之前爭取拿下。這週在做題中時常碰到別的演算法與該演算法結合的綜合性題目,比如洛谷中的一道藍色題目 貨車...

大學ACM第二週心得

小小分個類 這裡推薦這篇部落格 例 受歡迎的牛 由題可得,受歡迎的奶牛只有可能是圖中唯一的出度為零的強連通分量中的所有奶牛,所以若出現兩個以上出度為0的強連通分量則不存在明星奶牛,因為那幾個出度為零的分量的愛慕無法傳遞出去。那唯一的分量能受到其他分量的愛慕同時在分量內相互傳遞,所以該分量中的所有奶牛...

ACM第二週學習總結(貪心演算法)

週末總結 將大問題分解,尋找區域性最優。貪心問題是通過區域性最優找到全域性最優的問題,而動態規劃問題不可用區域性最優來達到實現全域性最優的目的。解決問題尋找正確思路的過程,在不知道正確思路快速解答的情況下,先進行模擬,將整個過程 實現,再進行優化,可以嘗試將複雜的條件刪除或取代,先將大一點的條件 實...