奇思妙想的演算法隨筆

2021-10-23 18:07:22 字數 647 閱讀 5456

有n個數,現在要求兩兩之間差值的和,要求盡量低的複雜度。

思路a:直接列舉,o(n^2)的複雜度

int ans=0;

for(i=1;i<=n;++i)

}

思路b:我們將整個陣列進行由小到大的排序,然後使用公式法。假設排序完之後的陣列狀態為

此時我們關注按照不同起點分割答案,那麼對於每乙個起點

我們將他以段的形式進行分割,於是可以得到

我們製作貢獻量**如下:

分割小段 \ 分割大段 

.........

n-1n-2n-2

n-3n-3

n-3n-4n-4

n-4n-4

.......

n-(n-1)

n-(n-1)

n-(n-1)

n-(n-1)

n-(n-1)

n-(n-1)

我們可以從中總結出公式:對於排序後的陣列,兩兩差值的和可以用公式:

於是在排序之後我們可以使用線性公式計算答案,時間複雜度變為o(nlogn)。

**:

int ans=0;

sort(a+1,a+1+n);

for(i=1;i

asp 奇思妙想 困惑

這幾天為學校做了幾個 發現乙個問題,有一些資料庫 大部分是access的,還有一些msql的 在設計時出現了問題,造成了資料庫裡面的很多內容是冗餘的,所以需要對資料庫進行清理。所以就開始寫了乙個asp的檔案cleandata.asp 見後文 關鍵問題在於資料庫的問題,我本來在我的機器上有測試的資料,...

奇思妙想位運算

本篇旨在記錄 奇思妙想 的位運算。int c 10 intcount c 0 0 1 while c c c 1 解析 c 1 會導致c最末尾的1 因為借位變為0,而此前最末尾的1後面必然全是0 或者1為個位 所以當c c 1 時,就相當於消去c中最末尾的乙個1。如6的二進位制是0110,6 1的二...

python 爬蟲奇思妙想

總結 工程化思想,requests的使用 反爬 1.robots告訴你哪些可以爬取 2.判斷header頭來限制爬蟲 你自己改就完事了 爬取網頁 總結 工程化,保證程式怎麼exe都不會erro import requests url try kv r requests.get url,headers...