#P0061. 数列同积 | Hybrid
数列同积 | Hybrid
题目背景
这题是个错题(数据范围过大),仅用于偷鸡训练
题目描述
给定两个长度为 的数组 判断是否能够分别从 和 中各找两个数 ,
使得
输入格式
- 第一行一个正整数 。
- 第二行 个整数
- 第三行 个整数
输出格式
若存在,输出 yes,否则输出 no
样例
10
1 2 3 4 5 6 7 8 9 10
-8 0 54 33 2 1 1 6 6 0
yes
数据范围
特殊提示
下面代码可以获得50pts:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 2e5 + 5;
int a[N], n, m, b[N];
map<ll, int> mp;
ll c[N], d[N];
int main() {
cin >> n;
for (int i = 1; i <= n; i++)
cin >> a[i];
for (int i = 1; i <= n; i++)
cin >> b[i];
for (int i = 1; i <= n; i++)
for (int j = i + 1; j <= n; j++)
mp[a[i] * a[j]] = 1;
bool f = 0;
for (int i=1; i <= n; i++) {
for (int j = i + 1; j <= n; j++)
if (mp[b[i] * b[j]] == 1) {
f = 1;
break;
}
}
if (f)
cout << "yes";
else
cout << "no";
return 0;
}
统计
相关
在以下作业中: