首页 > 其他分享 >折半查找

折半查找

时间:2022-10-07 15:35:01浏览次数:58  
标签:折半 box cin long 50 查找 include

#include<map>
#include<stdio.h>
#include<iostream>
using namespace std;

long long box[50];
long long pos[50];
int main()
{
    long long n, m;
    cin >> n >> m;

    for (long long i = 0; i < n; i++)
    {
        cin >> box[i];
    }

    long long cnt = n / 2;
    map<long long, long long>a;
    for (long long i = 0; i < (1ll << cnt); i++)
    {
        long long ans = 0;
        for (long long j = 0; j < cnt; j++)
        {
            if (i & (1ll << j))
            {
                ans += box[j];
            }
        }
        a[ans] = i;
    }

    cnt = n - cnt;
    for (long long i = 0; i < (1ll << cnt); i++)
    {
        long long ans = 0;
        for (long long j = 0; j < cnt; j++)
        {
            if (i & (1ll << j))
            {
                ans += box[n - cnt + j];
                pos[j] = 1;
            }
            else
                pos[j] = 0;
        }

        if (a[m - ans])
        {
            for (long long j = 0; j < cnt; j++)
            {
                if (a[m-ans] & (1ll << j))
                {
                    cout << "1";
                }
                else
                {
                  cout << "0";
                }
            }
            break;
        }
    }
     
    for (long long i = 0; i < cnt; i++)
    {
        cout << pos[i];
    }
    return 0;
}

 

标签:折半,box,cin,long,50,查找,include
From: https://www.cnblogs.com/BlueTeas/p/16759818.html

相关文章

  • Java二分查找代码实现
    Java二分查找代码实现及原理简要分析代码原理描述前提:已经有一个排好序的数组(否则需要先排序)定义左边界left,右边界right,确定搜索范围,循环执行二分查找(第3、4步骤)......
  • 树结构系列(一):从普通树到二叉查找树
    树结构是数据结构中非常重要的一种类型,本文将从最基础的普通树结构入门,延伸到二叉树,再延伸至二叉查找树。通过这种思路,让大家构建起关于树的最基本的知识链路。普通树树是一......
  • 算法突破:二分查找
    LeetCode75学习计划适用于想为技术面试做准备但不确定应该聚焦于哪些题目的用户。学习计划中的题目都是经过精心挑选的,Level1和Level2学习计划是为初级用户和中级用户......
  • LeetCode 07 - 二分查找
    注意几个点:区间的确定:一般写成闭区间[left=0,right=n-1]。循环条件的确定:因为使用闭区间,所以left==right在区间中是有意义的,所以循环条件为while(left<=right)......
  • Linux/Cygwin助手函数:findremoteip,根据网络连接信息过滤查找特定远程IP,查询和终止Wind
    本函数Cygwin下测试通过,MSYS2,WSL1理论上可用(另:WSL2自然是不行),未经过测试!findremoteip函数代码:findremoteip(){ #根据网络连接的远程主机IP查找Windows相关进程: #目......
  • 二分查找算法的起步判定优化
    packagecom.example.grokkingalgorithmsdemo.binarysearch;importlombok.extern.slf4j.Slf4j;/***@Author:Frank*@Date:2022-06-0412:12*/@Slf4jpublicclassBin......
  • 【Python】第3章-4 查找指定字符
    本题要求编写程序,从给定字符串中查找某指定的字符。输入格式:输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。输出格式:如果找到,......
  • 二分查找算法
    二分查找算法又叫做折半查找,要求待查找的序列有序,每次查找都取中间的值与待查关键字进行比较,如果中间位置的值比待查关键字大,则在序列的左半部分继续执行该查找过程,如......
  • 0464-如何离线分析HDFS的FsImage查找集群小文件
    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。Fayson的github:​​https://github.com/fayson/cdhproject​​提示:代码块部分可......
  • CVPR2018关键字分析生成词云图与查找
    今日目标:爬取CVPR2018论文,进行分析总结出提到最多的关键字,生成wordCloud词云图展示,并且设置点击后出现对应的论文以及链接对任务进行分解:①爬取CVPR2018的标题,简介,关键字,论......