51nod 1267二分 優化試驗場

2022-08-13 09:57:14 字數 960 閱讀 2509

最初,最開始的時候,萬能的學姐曾經警告過我們,千萬別用什麼老獅子map,手擼map或者字典樹。。。當時不甚理解。。。今天。。。這題直接卡掉了我的map,但是使用樸素方法進行二分。。。不加優化,,都不需要這個架勢。。。直接相差了將近十倍,在我開了優化之後快了20倍左右。。。。

上**:

1 #include2

using

namespace

std;34

const

long

long maxn=1233;5

67class

node8;

13 node nodes[maxn*maxn];

14bool

cmp(node n,node n1)

1518

long

long

n;19

long

long

arr[maxn];

20long

long

21long;22

long

long point=0;23

bool check(node &n1,node &n2)

2431

void

init()

3238

39for(int i=0;ii)

4048 }sort(nodes,nodes+point,cmp);49}

5051

bool succ=0;52

setlong>s1;

53int

main()

54pos++;73}

74if(succ)break;75

//cout<<"target: "<76}77

if(succ)cout<<"

yes"

<78else cout<<"no"

<79return0;

80 }

51nod1267 四個數和為0

先得到任意兩個數的和,從小到大排序,從兩邊向中間掃一遍就行了 include include using namespace std typedef long long ll int a 1005 struct nodesum 1005 1005 bool cmp struct node a,str...

51Nod1799 二分答案

lyk最近在研究二分答案類的問題。對於乙個有n個互不相同的數且從小到大的正整數數列a 其中最大值不超過n 若要找乙個在a中出現過的數字m,乙個正確的二分程式是這樣子的 l 1 r n mid l r 2 while l r 最終a r 一定等於m。但是這個和諧的程式被熊孩子打亂了。熊孩子在一開始就將...

51nod 1686 二分 尺取法

題意 給出陣列,區間的值為其重數 這個重數是指區間內的重數,不是整個陣列的重數 求解第k大小的區間值 重數 題解 思路 二分 尺取法 由上知 重數的範圍為 1 100000 重數值大的區間一定包括重數值小的區間 因此找到有大於等於k個區間值為mid就是答案了 注意 有可能第k大的值和第k 1個 或者...