作題經驗(我的瞎扯淡)

分類ios

        1、小數據範圍,須要枚舉,求最大或最小值算法

           搜索,for循環枚舉數組

        2、數據較大,也有枚舉特徵,或等差序列網絡

           動態規劃函數

        3、題目比較長,題中有對流程的描述spa

         模擬code

        4、看起來像數學中的找規律題blog

           數論,想不出公式就遞推隊列

        5、給了一個圖,找最短路徑element

           最短路算法

        6、給了一個圖,判斷圖的連通性並在連通時求大或最小

        生成樹

           7、在一段區間裏修改或求和

        線段樹、樹狀數組、模擬

           8、最大值最小或是最小值最大或判斷一個數成不成立

        二分答案

    9、素數的判斷

   枚舉到根號a。

    10、中位數與最小值

   均分紙牌問題。

   11、網絡流的限流

   新建一個匯點,連一條流量爲限制流量的邊。

   12、把一個數的每一位拼成一個整數

for(int i=t1;i>=1;i--)
{
    tot=tot*10+ori[i];
}

 

    十3、帶權二分圖最大匹配

   源點到左邊點流量爲1,費用爲0;左邊點到能匹配的右邊點流量爲1,費用爲邊權;左邊點到匯點流量爲1,費用爲0。

   十4、平面圖染色

   顏色=2時,若是n是基數則方案數爲0,n是偶數則方案數爲2。

   十5、詢問一些序列中最多重複的個數

   作一個統計序列,在序列的左端點+1,右端點-1,而後作這個序列的前綴和。

   十6、bitset神器

   這玩意所佔空間是相同元素個數的bool數組的1/8,運行時間是1/32(32位系統)或1/64(64位系統)。

    十7、cctype庫函數

    

    

   十8、堆的複雜度計算

    log(堆的大小),與輸入數據的規模無關。

   十9、nth_element(first,kth,last)函數

    使第k大元素處於第k位置,而且比這個元素小的元素都排在這個元素以前,比這個元素大的元素都排在這個元素以後,但不能保證他們是有序的。

    二10、long double類型函數

   在通常的cmath函數後面加一個l,不然即便傳參是long double,計算的結果也是double。輸入/出long double最靠譜的方式是用double類型輸入/出而後轉成            long double。

   二11、位運算^

   若是a^b==2,那麼a^2==b。

   二12、數對個數

     可重:n(n-1)。不可重:n(n-1)/2。

   二十3、優先隊列的comp

     大小於號方向與元素大小相反

   

#include <queue>
#include <iostream>

using namespace std;

struct cmp {
    bool operator()(int i, int j) {return i < j;}
};

int main() {
    priority_queue<int, vector<int>, cmp> q;
    for (int i = 0; i < 5; i++) {q.push(i);}
    for (int i = 0; i < 5; i++) {cout << q.top() << ' '; q.pop();}
    return 0;
}

 

暫時這些,想到在更。

相關文章
相關標籤/搜索