1 条题解

  • 0
    @ 2025-8-24 23:04:29

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Eason_cyx
    Play like you never did before?

    搬运于2025-08-24 23:04:29,当前版本为作者最后更新于2024-09-29 12:37:45,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    可以对于每个数 aia_i,用一个 map 来记录他们出现过。那么只需要将所有数存进 map 后,对于每个数 aia_i,查询 ai+ka_i+k 是否存在即可。时间复杂度 Θ(nlogn)\Theta(n\log n)logn\log nmap 常数。

    #include <bits/stdc++.h>
    using namespace std;
    int a[100005];
    map<int,int> mp;
    int main() {
    	int n,k; cin >> n >> k; for(int i = 1;i <= n;i++) { cin >> a[i]; mp[a[i]]++; }
    	for(int i = 1;i <= n;i++) {
    		if(mp[a[i]+k]) {
    			cout << "Yes"; exit(0);
    		}
    	}
    	cout << "No\n";
    	return 0;
    }
    
    • 1

    信息

    ID
    10734
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者