模板 二分

【模板】二分

 1 int binsearch(int *t,int k,int n)
 2 {
 3     //t为数组,k是要查找的数,n为长度,此为升序
 4
 5     int low = 1,high = n,mid;
 6
 7     while(low<=high)
 8     {
 9         mid = (low+high)/2;
10         if(k == t[mid])
11         return mid;
12         else if(k<t[mid])
13         high = mid-1;
14         else
15         low = mid+1;
16     }
17
18     return -1;
19
20 }
时间: 2024-10-06 00:48:53

模板 二分的相关文章

POJ 3041 Asteroids(模板——二分最大匹配(BFS增广))

题目链接: http://poj.org/problem?id=3041 Description Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape of an N x N grid (1 <= N <= 500). The grid contains K asteroids (1 <= K <= 10,000), which are conveniently

二分图带权匹配-Kuhn-Munkres算法模板 [二分图带权匹配]

尴尬...理解不太好T T 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 using namespace std; 6 #define inf 0x3f3f3f3f 7 8 const int maxn=1005; 9 10 int n; 11 //标杆序号 12 int lx[maxn],ly[maxn]; 13 //是否被搜索过 14

模板——二分

#include<bits/stdc++.h> using namespace std; int main(){ int l=1,r=n+1,mid,k; while (l+1<r){ mid=(l+r)>>1; if (solve(mid)<=k) l=mid; else r=mid; } printf("%d",l); return 0; } 原文地址:https://www.cnblogs.com/cain-/p/9519922.html

二分——二分查找算法模板

转自:二分查找算法模板 二分模板一共有两个,分别适用于不同情况.算法思路:假设目标值在闭区间[l, r]中, 每次将区间长度缩小一半,当l = r时,我们就找到了目标值. 版本1当我们将区间[l, r]划分成[l, mid]和[mid + 1, r]时,其更新操作是r = mid或者l = mid + 1;,计算mid时不需要加1. C++ 代码模板: int bsearch_1(int l, int r) { while (l < r) { int mid = l + r >> 1;

hdu 5093 二分匹配

/* 题意:给你一些冰岛.公共海域和浮冰,冰岛可以隔开两个公共海域,浮冰无影响 求选尽可能多的选一些公共海域点每行每列仅能选一个. 限制条件:冰山可以隔开这个限制条件.即*#*可以选两个 预处理: ***** **#*# ***** 可以按行转化 ***** **#oo ooo*# ***** 按列转化 ***o**o **ooooo oooo*oo **o**o* 因为每行每列顶多可以增加50 所以总共最多2500*2500的矩阵 然后直接二分匹配即可 */ #include<stdio.h>

hdu 2255 二分图带权匹配 模板题

模板+注解在 http://blog.csdn.net/u011026968/article/details/38276945 hdu 2255 代码: //KM×î´ó×îСƥÅä #include <cstdio> #include <cstring> #include <algorithm> #include <iostream> using namespace std; #define INF 0x0fffffff const int MAXN

二分查找 模板

1 int bsearch(int l, int h, int k)//二分查找函数 2 { 3 int i, mid; 4 5 while(l<=h){ 6 mid = l+(h-l)/2; 7 if(X[mid]>k) 8 h = mid-1; 9 else if(X[mid]<k) 10 l = mid+1; 11 else 12 break; 13 } 14 return mid; 15 } 1 int max_bsearch(int l, int h, int k)//求上界

二分算法模板

二分算法求最值,掌握了算法的本质和模板,主要就是答案验证过程,验证过程经常使用贪心算法. 关键是根据题目要求设立命题check(x). 验证答案mid: Check(mid):是否成立? 求满足条件Check(mid)的最小值: –if  check(mid) then r:=mid else l:=mid+1; 求满足条件Check(mid)的最大值: –if  check(mid) then l:=mid else r:=mid-1; 模板一:求满足条件check(mid)的最小值. 1 /

HDU2063(二分匹配入门模板题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9322    Accepted Submission(s): 4108 Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求