题目名称 3436. [NOI Online 2020 3rd PJ]买表(民间数据)
输入输出 noi_online2020_watch.in/out
难度等级 ★★★
时间限制 2000 ms (2 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatarmouse 于2020-07-22加入
开放分组 全部用户
提交状态
分类标签
位运算 单调队列 多重背包
分享题解
通过:25, 提交:81, 通过率:30.86%
Gravatar什么都想学什么都学了一点的晓无痕 100 0.155 s 2.23 MiB C++
Gravatar夜莺 100 0.177 s 2.23 MiB C++
Gravatar超人 100 0.210 s 0.00 MiB C++
Gravatar惠惠 100 0.237 s 0.00 MiB C++
Gravatar嗨嗨嗨 100 0.270 s 0.00 MiB C++
Gravatarsywgz 100 0.272 s 0.00 MiB C++
Gravatarsyzhaoss 100 0.274 s 2.49 MiB C++
Gravatar什么都想学什么都学了一点的晓无痕 100 0.296 s 6.89 MiB C++
Gravatar 100 0.442 s 2.14 MiB C++
Gravatarfsdh 100 0.469 s 6.86 MiB C++
本题关联比赛
2020级再出发之二进制拆分及运用
2020级再出发之位运算
关于 买表(民间数据) 的近10条评论(全部评论)
a
Gravatarfsdh
2020-09-21 20:55 1楼

3436. [NOI Online 2020 3rd PJ]买表(民间数据)

★★★   输入文件:noi_online2020_watch.in   输出文件:noi_online2020_watch.out   简单对比
时间限制:2 s   内存限制:128 MiB

【题目描述】

$Jimmy$ 到 $Symbol$ 的手表店买手表,$Jimmy$ 只带了 $n$ 种钱币,第 $i$ 种钱币的面额为 $k_i$ 元,张数为 $a_i$ 张。$Symbol$ 的店里一共有 $m$ 块手表,第 $i$ 块手表的价格为 $t_i$ 元。

$Symbol$ 的手表店不能找零,所以 $Jimmy$只能在凑出恰好的钱数时才能购买一块手表。现在对于店里的每块手表,$Jimmy$ 想知道他能不能凑出恰好的钱数进行购买。

【输入格式】

第一行两个空格分隔的整数 $n$ 和 $m$ 表示钱币数与手表数。

接下来 $n$ 行每行两个空格分隔的整数 $k_i$ 和 $a_i$ 表示钱币的面额和张数。

第 n+2 行,共 $m$ 个用空格分隔的整数 $t_i$,表示每块手表的价格。

【输出格式】

一共 $m$ 行,对于第 $i$ 行,如果能凑出恰好的钱数购买第 $i$ 块手表则输出 $Yes$ 否则输出 $No$,注意只有首字母大写。

【样例输入】

3 5
1 2
5 1
6 3
3 19 21 1 7

【样例输出】

No
Yes
No
Yes
Yes

【样例解释】

- 第二块手表 $19=6 \times 3+1=6 \times 2+5+1 \times 2$,可以恰好凑出。

- 第四块手表 $1=1 \times 1$,可以恰好凑出。

- 第五块手表 $7=5+2\times 1=6 \times 1+1$,可以恰好凑出。

【数据规模与约定】

对于 $50\%$ 的数据,保证 $n\leq 10$,$m \leq 60$,$a_i \leq 20$,$k_i \leq 5000$,$t_i \leq 250$。

对于 $100\%$ 的数据,保证 $1 \leq n \leq 200$,$1 \leq m \leq 10^5$,$1 \leq a_i \leq 1000$,$1 \leq k_i \leq 500000$,$0 \leq t_i \leq 500000$。

【来源】

$NOI$ $Online2020$ $入门组$ $第三轮$ $Task$ $3$