poj 幾道簡單的二分題

2022-08-12 12:57:15 字數 1785 閱讀 1021

題意:

有n個數,劃分成m塊,和最大的一塊最小是多少?

分析:

最大值最小問題,二分答案。

#include

using

namespace

std;

typedef

long

long ll;

const

int n=1e5+9;

int a[n],n,m;

bool ok(int x)

else

if(k<0)return

false;

}return k>0;

}int main()

printf("%d\n",l);

return

0;}

題意:

一條河l寬,河中間有n個落腳點,問移走m個落腳點後,過河時,跨越的最短距離最大是多少?

分析:

讀完這題,最小值最大問題,先想到二分答案,但是仔細想了想之後覺得不行,因為這是確定的移走m塊石頭,就拿樣例來講,如果二分答案是3,那麼只能移走一塊石頭(2),不行,如果二分答案是5,那麼要移走三塊石頭,也不行。左右都不行還怎麼二分啊?於是寫了個貪心,wa了。後來又仔細想了想,其實對於答案是3這種情況,我們可以認為這是可行的(雖然沒移夠m塊,但是繼續二分可以得到最優解)。所以這題二分就可以了。

#include

#include

using

namespace

std;

typedef

long

long ll;

const

int n=1e5+9;

int a[n],n,m,l;

bool ok(int x)

return

true;

}int main()

printf("%d\n",l);

return

0;

題意:

固定的鋼管熱膨脹,會向上彎曲,求上公升的高度?

分析:

求一下邊角關係,然後二分答案即可。

#include

#include

using

namespace

std;

typedef

long

long ll;

int main()

printf("%.3f\n",l);

}return

0;}

題意:

有n個圓pie,每個半徑ri,有m+1個人,問每個人分相同面積的一片pie,最大的面積可能是多少?

分析:

二分答案,然後判斷即可。

#include

#include

#include

using

namespace

std;

const

double pi=acos(-1.0);

const

int n=1e4+9;

double s[n];

int n,m,r;

bool ok(double x)

return cnt>=m+1;

}int main()

double l=0,r=pi*10000*10000;

while(r-l>1e-6)

printf("%.4f\n",l);

}return

0;}

poj 幾道簡單的dp題

題意 求使數列程先遞增後遞減的形式需要去掉的數字個數。當然也可以直接遞減或者只遞減不遞增。分析 用最長遞增子串行的方法求,然後列舉兩個起點的位置即可。include include include using namespace std const int inf 1e8 const int n 1...

poj 幾道簡單的搜尋題 (一)

題目 poj 2488 a knight s journey 題意 給乙個m n的棋盤,馬走日,給出一條字典序最小的馬的路線來走完整個棋盤?分析 如果能走完棋盤,那麼從 1,1 點dfs即可,因為他能走完整個棋盤嘛,總有一步會經過 1,1 所以從 1,1 出發就能到其他所有點。為了保證字典序,在列舉...

二分查詢簡單題

leetcode 35.search insert position 最普通的binary search,若target存在,則返回所在下標 若target不存在,則返回target待插入的位置,本質上就是實現lower bound函式 無論mid left right left 2,還是mid l...