二分作為查詢利器很實用:
本篇主要講述二分理論
二分解題
二分stl解題
二分模板
非遞推版本
int search(int x) //二分查詢
else
right=mid-1;
}}
題目:
//二分查詢模板
#include #include #include #include using namespace std;
const int maxn = 100001;
long long int num[maxn];
int n;
int search(int key) //二分查詢
if(fabs(num[left]-key)<=fabs(num[left+1]-key)&&left#include #include using namespace std;
int n;
int a[100002];
int m;
int search(int x)
return -1;
}int main()
sort(a+1,a+n+1);//選出小的更小
scanf("%d",&m);
for(i=1;i<=n;i++)
}printf("no\n");//沒有
return 0;
}
題目是要求得開銷最小的月度劃分的最大開銷,不難看出在極端情況(如 每天開銷為1,1,50,劃分為2個fajo月)時開銷最小值是每天開銷的最大值(50)。因此,我們可以在讀入時找到每天開銷的最大值,作為二分查詢中的左邊界(left)。
但是右邊界(right)在本題目中並不好找,我們只能盡量將它設大一些,此時列舉極端情況(如 每天開銷為4,5,6,劃分為1個fajo月),則發現最小開銷為每天開銷的總和。於是我們可以把每天開銷的和(sum)作為右邊界使用。
接下來是二分查詢,此時的mid是作為假定的最小劃分的最大開銷使用。然後我們需要判斷mid是否成立。
判斷的方法如下:
嘗試在每一天的開銷中劃分,若該fajo月的開銷總額沒有超過mid,就繼續累加;否則將劃分出的fajo月總數加1,並重新累加下乙個fajo月。在中途若發現該fajo月的開銷已經比mid大,就說明mid是錯誤(false)的。劃分完畢後,比較劃分出的fajo月總數和m(要求劃分出的fajo月總數),若比m大(嚴格」>」),說明mid不正確;反之正確。
最後需要改變左右邊界值。根據之前判斷的結果,若正確,根據題意,要找到最小的劃分,所以向下查詢(改變right的值);反之,說明mid太小,就向上查詢(改變left的值)。
//月份中最大的花費作為左端點,總花費作為右端點進行二分
#include #include #include using namespace std;
const int maxn = 100009;
int n,m,maxx,right1,ans;
int a[maxn];
int check(int x)
else
}if(yfen<=m)
return 1;
else
return 0;
}int search()
else l = mid+1;
}return ans;
}int main()
cout《左端點為0,右端點為總長度,二分,
根據i,j之間的距離來決定拆除的石板數,依次列舉
#include #include #include using namespace std;
const int maxn = 50020;
int river[maxn];
int l,l,r,n,m;
int mid;
int ans;
int search(int mid)
else wz = i;
}return cnt;
}int main()
n++;
river[n] = l;
l = 0;
r = l;
while(l<=r)
cout<
#include #include #include using namespace std;
const int maxn = 50001;
int a[maxn],b[maxn];
int n,m;
int search(int key,int* vec,int len)
else
r=mid-1;
}return 0;
}int main()
{ int m,n,count;
while(~scanf("%d%d",&m,&n))
{count=0;
if(n==0&&m==0) break;
for(int i=0;i=n)
{sort(a,a+m);
for(int i=0;i
不務正業學Python(一)
python學習 1.python的哲學就是簡單優雅,盡量寫容易看明白的 盡量寫少的 2.python適合開發那些應用?首先網路應用,包括 後台服務 其次是許多日常需要的小工具,包括指令碼任務 另外就是把其他語言開發的程式再包裝起來,方便實用。3.python是解釋型語言,執行速度慢,且 不能加密。...
不務正業 之前端HTML基礎(一)
常用標籤用法 jeverson html roadtitle head html 上述的 注釋中,匆匆一看乙個標準的html文件,除去文件宣告的型別大概是由標籤和內容組成的,對於前端來講html是結構標準,那html的結構是不是就是由這些富有語義化的元素和元素屬性組成的呢,答案是的。熟知了上述的一些...
不務正業?黑莓設立自動駕駛測試中心
未來幾年,黑莓計畫投資1億加元在自動駕駛專案,此舉也是為了實現公司在其他領域業務的增長。近日,黑莓ceo程守宗表示,黑莓將向設在加拿大渥太華的乙個自動駕駛汽車創新中心投資約1億加元 7500萬美元 並創造650個工作崗位。與此同時,黑莓將在自主駕駛汽車上發揮自身在網路安全上的優勢。程守宗說 大多數資...