洛谷 P2249 【深基13.例1】查找

题目描述

出题是一件痛苦的事情!

相同的题目看多了也会有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈!

好吧,题目是这样的:给出一串数以及一个数字 CC,要求计算出所有 A - B = CA−B=C 的数对的个数(不同位置的数字一样的数对算不同的数对)。

输入格式

第一行 2 个整数 n 和 m,表示数字个数和询问次数。

第二行 n 个整数,表示这些待查询的数字。

第三行 m 个整数,表示询问这些数字的编号,从 1 开始编号。

输出格式

m 个整数表示答案。

AC 代码

#include<iostream>

using namespace std ;

const int N = 1e6+10 ;

int n ,t ;
int a[N] ;

int left_find(int arr[],int x,int y){
    int l = 0 , r = y;//0 11
    if(r==0) return -1;
    while (l<r)
    {
        int mid = l + (r-l)/2 ;//5
        if(arr[mid]==x) r = mid ;
        else if(arr[mid]<x) l=mid+1 ;
        else if(arr[mid]>x) r=mid;
    }
    if(arr[l] == x) return l+1 ;
    else return -1 ;
}

int main(){
    cin >> n >> t;
    for(int i = 0 ; i < n ;i ++) cin >> a[i] ;
    while (t--)
    {
        int x; 
        cin >> x ;
        int op = left_find(a,x,n);
        cout << op << " ";
    }
    return 0 ;
}
posted @   ICE_棋  阅读(203)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示