马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
# 202308H 小粉兔的元素反应
## 题目描述
在小粉兔所处的 Tivat(蒂瓦特)世界,有 $n$ 种元素。其中每种元素都可以蕴含一定的能量,且不同元素之间可以进行反应。
小粉兔现在掌握了这 $n$ 种元素。初始时,他所掌握的每种元素所蕴含的能量依次为 $a _ 1, a _ 2, \cdots, a _ n$。
不同元素之间的反应相关细节如下:
**反应条件**:对于任意两种元素 $i, j$($i \neq j$),如果 $a _ i \times a _ j$ 是 $154$ 的倍数或 $147$ 的倍数,则二者可以进行反应。**元素不可与自身反应**。
**反应结果**:包含这两种元素在内,所有的 $n$ 种元素所蕴含的能量均翻倍(即,所有 $a _ i$ 均变为原来的两倍)。
**反应次数**:任意两种元素之间的反应次数均没有限制(即,同两种元素,在一直符合反应条件的情况下,可以反应多次)。
现在,小粉兔想要通过元素反应,使得自己手头的元素能量总和大于等于 $k$,从而打败 Tivat 世界最强大的怪兽——地文(Devil)。他现在想要知道,通过若干次($0$ 次亦可)反应后,$a _ 1 + a _ 2 + \cdots + a _ n$ 是否可以大于等于 $k$。
## 输入格式
**本题单个测试点内有多组数据**。
输入共 $2 \times T + 1$ 行。
第一行一个整数 $T$,表示数据组数。
对于每组数据:
第一行为两个整数 $n, k$,分别代表元素种类数和小粉兔的目标。
第二行为 $n$ 个整数 $a _ 1, a _ 2, \cdots, a _ n$,分别代表每种元素初始时所蕴含的能量值。
## 输出格式
输出共 $T$ 行。
对于每组数据:
输出一行一个字符串。如果小粉兔可以通过若干次($0$ 次亦可)反应,使得 $a _ 1 + a _ 2 + \cdots + a _ n$ 大于等于 $k$,则输出一行 `Yes`,否则输出 `No`。
## 样例 #1
### 样例输入 #1
```
1
4 1395
143 238 174 199
```
### 样例输出 #1
```
Yes
```
## 样例 #2
### 样例输入 #2
```
1
4 1441
677 293 859 751
```
### 样例输出 #2
```
Yes
```
## 样例 #3
### 样例输入 #3
```
1
4 1295
136 875 196 34
```
### 样例输出 #3
```
No
```
## 提示
### 样例 1 解释
首先,小粉兔可以选择 $143$ 与 $238$ 做乘法,结果为 $143 \times 238 = 34034 = 154 \times 221$。此时所有元素能量翻倍,变为 $286, 476, 348, 398$,而 $286 + 476 + 348 + 398 = 1508 \geq 1395$,因此小粉兔可以通过一次操作达到目的。
### 样例 2 解释
$677 + 293 + 859 + 751 = 2580 \geq 1441$,因此小粉兔不操作便可达到目的。
### 样例 3 解释
小粉兔无法引发任何元素反应,最终四能量相加 $< 1295$,因此小粉兔不可以达到目的。
### 数据规模与约定
设 $N = \sum n$,代表单个测试点内所有测试数据的 $n$ 的总和。设 $K$ 代表单个测试点内所有测试数据的 $k$ 的长度总和。
对于 $100\%$ 的数据,保证 $1 \leq T \leq 10 ^ 5$,$1 \leq n, N \leq 10 ^ 6$,$1 \leq k \leq 10 ^ {10 ^ 5}$,$1 \leq a _ i \leq 10 ^ 9$,$1 \leq K \leq 2 \times 10 ^ 6$。
| 测试点编号 | $n$ | $k$ | $a _ i$ |
| :----------: | :----------: | :----------: | :----------: |
| $1$ | $= 1$ | $\leq 10 ^ 9$ | $\leq 10 ^ 9$ |
| $2 \sim 3$ | $\leq 100$ | $\leq 10 ^ {9}$ | $\leq 10 ^ 5$ |
| $4$ | $\leq 1000$ | $\leq 10 ^ {9}$ | $\leq 13$ |
| $5$ | $\leq 1000$ | $\leq 10 ^ {18}$ | $\leq 10 ^ 9$ |
| $6 \sim 7$ | $\leq 1000$ | $\leq 10 ^ {10 ^ 5}$ | $\leq 10 ^ 9$ |
| $8 \sim 10$ | $\leq 10 ^ 6$ | $\leq 10 ^ {10 ^ 5}$ | $\leq 10 ^ 9$ |
我的代码不对:T = int(input())
for _ in range(T):
t = 1
n, k = map(int, input().split())
a = list(map(int, input().split()))
sum_a = sum(a)
if sum_a > k:
print("Yes")
continue
for i in range(0, len(a)):
for j in range(i + 1, len(a)):
if a[i] * a[j] % 154 == 0 or a[i] * a[j] % 147 == 0:
print("Yes")
t = 0
break
else:
break
if t:
print("No")
|