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