编程题
### 问题描述 在小蓝面前有 $n$ 个方格,每个方格里面都有一颗糖果,糖果的口味有两种,一种是芒果味,一种是蓝莓味。小蓝每次都可以向前跳跃一格或两格,每到一个方格,小蓝就会将方格上的糖果吃下去。如果小蓝吃到的糖果是芒果味,心情值就会减少 $1$ 点;如果小蓝吃到的糖果是蓝莓味,心情值就会增加 $1$ 点,小蓝的初始心情值为 $0$。 现在问你,是否存在一种跳跃方式,使得小蓝 **跳跃出所有方格** 后,心情值恰好为 $x$ 点。如果存在,则输出 `Yes`;如果不存在,则输出 `No`。 对于跳跃出所有方格的解释: ![图片描述](https://dn-simplecloud.shiyanlou.com/questions/uid1664054-20240315-1710481343249) 小蓝初始在 $0$ 位置,需要跳跃到终点 $n+1$。 ### 输入格式 第一行输入一个正整数 $t$,表示测试用例组数。($1\le t\le 1000$)。 对于每组测试数据: 第一行输入两个正整数 $n,x$,含义如题所述。($1\le n\le 2\times 10^5,-2\times 10^5\le x\le 2\times 10^5 $)。 第二行输入 $n$ 个整数,第 $i$ 个整数的值为 $1$ 或 $-1$,$1$ 代表该位置是蓝莓味的糖果,$-1$ 代表该位置是芒果味的糖果。($1\le i\le n$)。 $1\le\sum_{i=1}^{t} n_i\le 2\times 10^5$。 ### 输出格式 对于每组测试数据,若存在一种跳跃方式,使得小蓝跳跃出方格后,心情值恰好为 $x$ 点,则输出 `Yes`;如果不存在,则输出 `No`。 ### 样例输入 ```text 3 4 1 1 1 1 1 3 1 1 -1 1 2 1 -1 1 ``` ### 样例输出 ```text No Yes Yes ``` ### 说明 对于第一组测试数据:不存在任意一种跳跃方式,使得结果为 $1$。 对于第二组测试数据:你可以选择吃所有的糖果,使得结果为 $1$。 对于第三组测试数据:你可以先跳跃到 $1$,然后再跳 $1$ 格出方格。
查看答案
赣ICP备20007335号-2