bluecode-【米小游】20250329_3_小米游的数组询问

时间限制:C/C++ 1000MS,其他语言 2000MS

内存限制:C/C++ 256MB,其他语言 512MB

难度:困难

出题人:root

描述

小米游拿到了一个数组,她有若干次询问,每次询问输入一个x,她希望你判断x能否由数组中的两个元素相乘得出。

用数学语言描述,你需要寻找到两个下标i和j(i<j),满足a_i*a_j=x。

输入描述

第一行输入一个正整数n,代表数组的大小。

第二行输入n个正整数a_i,代表数组的元素。

第三行输入一个正整数q,代表询问次数。

接下来的q行,每行输入一个正整数x,代表一次询问。

1 < n,q < 10^5

1< a_i,x < 10^6

输出描述

对于每次询问,如果无法找到两数乘积等于x,请输出-1 -1。

否则输出i和j(i<j),用空格隔开,代表a_i*a_j=x。

用例输入 1

复制代码
5
1 2 3 2 4
2
4
5

用例输出 1

复制代码
2 4
-1 -1

提示

样例1说明

第一组询问,输出1 5也是可以的。

第二组询问,显然无法找到两个元素相乘等于5。

cpp 复制代码
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;

int main() {
    int n;
    cin >> n;
    
    // 读取数组
    vector<int> a(n);
    for(int i = 0; i < n; i++) {
        cin >> a[i];
    }
    
    int q;
    cin >> q;
    
    // 对于每个询问进行处理
    while(q--) {
        int x;
        cin >> x;
        
        // 使用哈希表存储元素及其下标
        unordered_map<int, int> mp;
        bool found = false;
        
        // 遍历数组
        for(int i = 0; i < n; i++) {
            // 如果 x 能被 a[i] 整除
            if(x % a[i] == 0) {
                int target = x / a[i];
                // 如果之前已经出现过 target
                if(mp.count(target)) {
                    cout << mp[target] + 1 << " " << i + 1 << endl;
                    found = true;
                    break;
                }
                // 将当前元素存入哈希表
                mp[a[i]] = i;
            }
        }
        
        if(!found) {
            cout << "-1 -1" << endl;
        }
    }
    
    return 0;
}
相关推荐
ZhengEnCi13 小时前
GPT-6 Astra 爆改 Qwen 权重真有那么神吗:权重空间编程 0.016% 参数的真相
算法·架构
罗西的思考13 小时前
【轻量化复刻大模型 / KIMI K3】KDA(Kimi Delta Attention):并行
人工智能·算法·机器学习
夜不会漫长15 小时前
C++:红黑树
数据结构·算法
AI备案指南-满满16 小时前
算法备案审核不通过,一般是什么原因?
java·人工智能·算法·大模型备案·算法备案·大模型登记
Ramble_Naylor16 小时前
Rust深度解读:Send 与 Sync 的本质与线程安全边界
python·算法·rust
秋天的怀念_David16 小时前
算法一千零一夜 · 第二十三夜 电力民生写成的曲线
java·程序人生·算法
不一样的故事12616 小时前
NB/T 47013.8-2015 附录D 吸枪技术
人工智能·经验分享·算法
通问AI16 小时前
用 200 行 Python 给文档库做「上下文完整度」自检:四个可复算的检查项
算法
揽星河..17 小时前
【C语言】扫雷游戏
c语言·算法·游戏
丘山录17 小时前
本地部署 LongCat-2.5,要 7 台机器我只有 4 台
人工智能·算法