atcoder#ABC271H. [ABC271Ex] General General

[ABC271Ex] General General

题目描述

T T 個のテストケースについて以下の問題を解いてください。

xy xy 座標平面上の原点 (0,0) (0,0) に駒が置かれています。あなたは次の操作を 0 0 回以上何度でも行うことが出来ます。

  • 1  i  8 1\ \leq\ i\ \leq\ 8 かつ si= s_i= 1 を満たす整数 i i を選ぶ。現在駒が置かれている座標を (x,y) (x,y) とした時、
    • i=1 i=1 ならば駒を (x+1,y) (x+1,y) に移動させる。
    • i=2 i=2 ならば駒を (x+1,y+1) (x+1,y+1) に移動させる。
    • i=3 i=3 ならば駒を (x,y+1) (x,y+1) に移動させる。
    • i=4 i=4 ならば駒を (x1,y+1) (x-1,y+1) に移動させる。
    • i=5 i=5 ならば駒を (x1,y) (x-1,y) に移動させる。
    • i=6 i=6 ならば駒を (x1,y1) (x-1,y-1) に移動させる。
    • i=7 i=7 ならば駒を (x,y1) (x,y-1) に移動させる。
    • i=8 i=8 ならば駒を (x+1,y1) (x+1,y-1) に移動させる。

あなたの目的は駒を (A,B) (A,B) に移動させることです。
目的を達成するために必要な操作回数の最小値を求めてください。ただし、目的を達成することが不可能な場合は代わりに -1 を出力してください。

输入格式

入力は以下の形式で標準入力から与えられる。

T T case1 \mathrm{case}_1 case2 \mathrm{case}_2 \vdots caseT \mathrm{case}_T

ただし、casei \mathrm{case}_i i i 番目のテストケースを表す。

各テストケースは以下の形式で与えられる。

A A B B s1 s2 s3 s4 s5 s6 s7 s8 s_1\ s_2\ s_3\ s_4\ s_5\ s_6\ s_7\ s_8

输出格式

全体で T T 行出力せよ。
i i 行目には i i 番目のテストケースに対する答えを出力せよ。

题目大意

题目描述

给你一个终点 G(A,B)G(A,B) 和一个向量集合 $S\subset S'=\{(1,0),(1,1),(0,1),(-1,1),(-1,0),(-1,-1),(0,-1),(1,-1)\}$。初始有一个点 P(0,0)P(0,0)。每次你可以选择一个向量 VSV\in S,然后执行 PP+VP\gets P+V。求出在最优策略下执行几次可以使得 P=GP=G,或者判断无解。

多组数据。

数据范围

  • 1T1041\le T\le 10^4

  • 109A,B109-10^9\le A,B\le 10^9

  • T,A,BZT,A,B\in Z

输入格式

第一行输入一个整数 TT,表示数据组数。

接下来 TT 行,每行两个整数 A,BA,B 和一个长为 880/1\texttt{0/1} 字符串 ss。如果 si=1s_i=1 则表示 SS 中存在 SS' 中的第 ii 个元素。

输出格式

对于每个测试用例,输出答案。

translated_by_nr0728

7
5 3 10101010
5 3 01010101
5 3 11111111
5 3 00000000
0 0 11111111
0 1 10001111
-1000000000 1000000000 10010011
8
5
5
-1
0
-1
1000000000

提示

制約

  • 1  T  104 1\ \leq\ T\ \leq\ 10^4
  • 109  A,B  109 -10^9\ \leq\ A,B\ \leq\ 10^9
  • si s_i 0 または 1
  • T,A,B T,A,B は整数