B3774 [信息与未来 2022] 样本分类
题目描述
在人工智能中,“分类”是一项非常重要的任务。例如,公安系统通过人工智能分类潜在的电信诈骗,并进行及时的预警。现在我们考虑一种最简单的“线性二分类器”,它由 $n$ 个整数参数(常数)$a_1,a_2,\cdots,a_n$ 组成。在输入一组整数 $x_1,x_2,\cdots,x_n$ 时,如果
$$
a_1\cdot x_1+a_2\cdot x_2+\dots+a_n\cdot x_n\leq 0
$$
成立,则分类器输出 $\texttt{true}$,否则分类器输出 $\texttt{false}$。如果分类器的输入(称为“特征”)选择得当,即便是简单的线性分类器也能取得很好的分类效果。
现在,我们得到了两个用于同一分类任务的分类器:
- 分类器 $A$,当 $a_1\cdot x_1+a_2\cdot x_2+\dots +a_n\cdot x_n\leq 0$ 时输出 $\texttt{true}$,否则输出 $\texttt{false}$
- 分类器 $B$,当 $b_1\cdot x_1+b_2\cdot x_2+\dots +b_n\cdot x_n\leq 0$ 时输出 $\texttt{true}$,否则输出 $\texttt{false}$
由于 $A$ 和 $B$ 是两个不同的分类器,它们可能会在某些输入的 $x$ 上产生分歧,给出不同的分类结果——这样的问题值得我们特别关注。因此,你的任务就是求出一组 $x_1,x_2,\cdots,x_n$,使得分类器 $A$ 和 $B$ 返回不同的结果。
为了帮助大家理解,我们假设 $a_i$ 和 $b_i$ 分别保存在数组 $\text{a}$ 和 $\text{b}$ 中(数组下标从 $1$ 到 $n$)。你的任务就是求出数组 $\text{x}$ 的元素 $\texttt{x[1]},\texttt{x[2]},\cdots,\texttt{x[n]}$,使下面的函数 $\texttt{diverge}$ 返回 $\texttt{true}$:
```cpp
int n; // 参数/输⼊的个数
bool classify(int param[], int x[]) {
int y = 0;
for (int i = 1; i
输入格式
输入的第一行包含一个整数 $n$,代表分类器参数的个数。
输入的第二行包含 $n$ 个整数,代表分类器 $A$ 的参数 $a_i$($1\le i\le n$)。
输入的第三行包含 $n$ 个整数,代表分类器 $B$ 的参数 $b_i$($1\le i\le n$)。
~~**输入数据保证两个分类器的参数不是完全相同的**。~~
传题人 Update:本题保证两个分类器的参数不对应成比例且同号,即所有 $\dfrac{a_i}{b_i}$ 不全为同一正值,可以证明这种情况下一定有解。
输出格式
输出一行 $n$ 个整数,分别是 $x_1,x_2,\cdots,x_n$。其中 $x_i$($1\leq i\leq n$)可以是正数、负数或零,但**绝对值不能超过 $10,000$**。如果有多组满足要求的解,输出任意一个即可。
说明/提示
对于 $100\%$ 的数据,满足 $1\le n\le 1,000$,$-100\le a_i,b_i\le 100$($1\le i\le n$)。