最後實在不知道輸出mid left 還是right,就把mid mid+1 mid-1根據特定的順序都判斷一遍就不會出錯。
普通的二分。
1:切小木棍
//最經典的就是從n個小木棍裡面切除k個最長的,求出最長的長度。
//題目鏈結
//有兩種寫法,一種是取mid100次,另一種是卡r-l>=1e9等,但是不要卡的太小,會陷入死迴圈
//輸出一定是用r而不是mid因為r一定》=mid,向下取整的時候,r一定可以,但是mid就不一定了。
#include using namespace std;
const int maxn=1e4;
double len[maxn];
int n,k;
bool isleft(double mid)
int main()
printf("%.2lf",floor(r*100)/(double)100);
// dowhile(r-l>1e-9);
// printf("%.2lf",floor(r*100)/(double)100);
return 0;
}
2:
#include using namespace std;
const int maxn=50005;
int l,n,m;
int pos[maxn];
bool judge(int len)
if(ans>m) return true;
else return false;
}int main()
{ cin>>l>>n>>m;
for(int i=2;i<=n+1;i++)
scanf("%d",&pos[i]);
pos[1]=0,pos[n+2]=l;
int l=0,r=l,mid;
while(l這一類的問題很容易被當成貪心。
有n個重wi 價值為vi的物品,從中選取k個,讓他們總單位體積的價值最大。這可不是貪心啊
二分問題 挑戰例題 2017 7 28
題意 給出n條線段,以公尺的單位給出,小數點後兩位 精確到厘公尺 要你對這些線段裁剪,裁剪出m條等長的線段,並且讓這些線段盡可能長另外線段的長度不能小於1厘公尺,如果籌不夠m條,輸出0.00 思路 1.轉換成整數 接著套模板就可以了 2.check函式 裡如果sum k說明此時可以拆分成k個 然後把...
二分查詢總結
今天上csdn,發現一篇關於二分查詢演算法的文章被置頂,回帖也相當熱烈。我覺得演算法總重要的還是要了解思想,至於程式設計技巧則是其次。二分查詢在計算中演算法中的重要性不言而喻,許多變形的演算法都是基於此演變的,比如二分查詢樹等。所以此演算法程式我也打算總結一下。當然經典的演算法討論莫過於jon be...
二分演算法總結
討論分為3種,第一種是搜尋佇列中任意我們需求的結果,第三種我們需求佇列中有多個返回第乙個,第四種未我們搜尋佇列中有多個返回最後乙個元素的index。第一種 在一行排好序佇列a中搜尋target,一定有。int binarysearch int a,int n,int target return 1 ...