题目名称 2991. [POJ 1722]减操作
输入输出 subtract.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarsyzhaoss 于2018-10-10加入
开放分组 全部用户
提交状态
分类标签
线性DP 动态规划
分享题解
通过:1, 提交:1, 通过率:100%
Gravatarsyzhaoss 100 0.000 s 0.00 MiB C++
关于 减操作 的近10条评论(全部评论)

2991. [POJ 1722]减操作

★★   输入文件:subtract.in   输出文件:subtract.out   评测插件
时间限制:1 s   内存限制:256 MiB

【题目描述】

给定一个整数数组 $a_1,a_2,\cdots,a_n$。

定义数组第 $i$ 位上的减操作:把 $a_i$ 和 $a_{i+1}$ 换成 $a_i-a_{i+1}$。

用 $con(a,i)$ 表示减操作,可以表示为:

$con(a,i)=[a_1,a_2,\cdots,a_{i-1},a_i-a_{i+1},a_{i+2},\cdots,a_n]$

长度为 $n$ 的数组,经过 $n-1$ 次减操作后,就可以得到一个整数 $t$。

例如数组$ [12,10,4,3,5] $经过如下操作可得到整数 $4$:

$con([12,10,4,3,5],2)=[12,6,3,5]$

$con([12,6,3,5],3)=[12,6,−2]$

$con([12,6,−2],2)=[12,8]$

$con([12,8],1)=[4]$

现在给定数组以及目标整数,求完整操作过程。

【输入格式】

第 $1$ 行包含两个整数 $n$ 和 $t$。

第 $2$到$n+1$ 行:第 $i$ 行包含数组中的第 $i$ 个整数 $a_i$。

【输出格式】

输出共 $n-1$ 行,每行包含一个整数,第 $i$ 行的整数表示第 $i$ 次减操作的操作位置。

【样例输入】

5 4
12
10
4
3
5

【样例输出】

2
3
2
1

【数据规模与约定】

$1\leq n\leq 100,-10000\leq t\leq 10000,1\leq a_i\leq 100$。