洛谷p2678跳石頭
終於過了,複雜度(nlogn)看來還是可以接受的。判斷是否成立部分也不難。
順便過了p1316丟瓶蓋,兩題挺像的。
#includeusing namespace std;
int a[50010]=;
int len,n,m,l,r,mid;
bool check(int temp)//判斷是否成立
if(flag!=n)s++;
if(s<=m)return true;else return false;
}int main()
,sum[100010]=;
int n,m,l,r,mid,ma;
bool check(int temp)
if(sma)ma=a[i];
} l=ma;r=sum[n];
while(l+1
經典模版題(現在才ak真是慚愧。。。)歸併排序其實也不難理解(只是以前太害怕?)
明天計畫:聰明的質檢員,試練場「遞推與遞迴二分」。
#includeusing namespace std;
int a[40010]=,c[40010]=,n;
long long ans=0;
void swap(int l,int r)
else
while(i<=mid)
while(j<=r)
for(int i=l;i<=r;i++)a[i]=c[i];//整理
return;}
int main()
sicily 1137 河床 二分分治
計算機演算法設計與分析 啃書中。有點看不進書,就來刷個水題吧,剛開始看錯題了還。注意 是所有測量點相差均不大於di而不是相鄰兩點。1 1137.河床 2 include 3 using namespace std 45 int max length int d,int l,int r,int m 1...
排序 二分治
關於二分治的排序,我們用到的是遞迴思想,直至陣列只含有乙個元素的時候,再利用合併的思想,根據預先設計好的排列方式進行 的優化過程。對於合併的過程,首先應該計算陣列被分開兩端的分別長度,然後再定義兩個陣列,分別用於儲存前後兩個部分的元素,對於元素的進入,要進行所謂的正確方法,書上定義了乙個末值標記點,...
演算法(二) 分治法
分治法的適 條件 該問題的規模縮 到 定程度就可以容易地解決。該問題可以分解為若 個規模較 的相同問題 遞迴思想的應 該問題所分解出的各個 問題是相互獨 的,即 問題之間不包含公共的 問題。利 該問題分解出的 問題的解可以合併為該問題的解。案例 快排 1 過程 divide partition 對元...