zoukankan      html  css  js  c++  java
  • 二分答案模板


     ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。

         ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val)算法返回一个非递减序列[first, last)中第一个大于val的位置。


    #include <iostream>  
    #include <algorithm>//必须包含的头文件  
    using namespace std;  
    int main(){  
     int point[10] = {1,3,7,7,9};  
     int tmp = upper_bound(point, point + 5, 7) - point;//按从小到大,7最多能插入数组point的哪个位置  
     printf("%d
    ",tmp);  
     tmp = lower_bound(point, point + 5, 7) - point;////按从小到大,7最少能插入数组point的哪个位置  
     printf("%d
    ",tmp);  
     return 0;  
    }  




    #include<bits/stdc++.h>  
    using namespace std;  
    typedef long long LL;  
    const LL INF = 1e18+1000;  
    const int MAXN = 1e6;  
    LL a[MAXN];  
    int cnt;  
    void Init()  
    {  
        cnt = 0;  
        for(LL i=1; i<INF; i*=2)  
            for(LL j=1; j*i<INF; j*=3)  
                for(LL k=1; i*j*k<INF; k*=5)  
                        a[cnt++] = i*j*k;  
    }  
    int main()  
    {  
        Init();  
        sort(a,a+cnt);  
        int t;  
        cin>>t;  
        while(t--)  
        {  
            LL n;  
            scanf("%lld",&n);  
            printf("%lld
    ",a[lower_bound(a+1,a+cnt+1,n)-a]);  
        }  
        return 0;  
    }  




  • 相关阅读:
    单例模式的三种写法
    ASP.NET如何下载大文件
    字符串是引用类型
    SQL 事务隔离级别
    Sql Server 锁
    设非主键为聚集索引
    C#如何使用SqlCacheDependency
    简易系统后台架构
    matlab cross 3*1 向量叉乘
    Matlab求齐次方程的解
  • 原文地址:https://www.cnblogs.com/bryce1010/p/9387085.html
Copyright © 2011-2022 走看看