F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

最小集合

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 1    Accepted Submission(s): 1


Problem Description
你有一个长度为 $ n $ 的数组。

每次操作你可以选择索引 $ i $,将 $ a_i $ 增加$ m $或者减少 $ m $。

$ q $ 次询问, 每次询问给你一个 $ k $, 表示你最多能操作的次数。

求操作后数组中不同元素个数的最小值。
 

Input
第一行包含一个整数 $T$ ( $1 \le T \le 20$ ),表示测试总数

每个测试的第一行包含两个整数 $ n $,$ m $( $1 \le n \le 300$ , $1 \le m \le 10^{6}$), 分别表示数组的大小、每次操作的变化值。

第二行包含 $ n $ 个整数,数组中的每个元素的值( $0 \le a_i \le 10^{12}$ )。保证数组中各个元素互不相同。

第三行包含一个数 $ q $, 表示询问的个数。接下来 $ q $ 行,每行包含一个数 $ k $,表示最多能操作的次数。( $1 \le q \le 10^{6}$ , $0 \le k \le 10^{12}$)。


保证 $ n $ 的总和不超过 $ 600 $, $q$ 的总和不超过 $10^{6}$。
 

Output
为了防止输出过大,按照以下格式输出:

初始 $ans = 0$ ,对于第 $ i $ 个询问假设答案为 $ ans_i $ ,赋值 $ ans = (ans * 13331 + ans_i) $ 并对 $ 998244353 $ 取模。
你只需输出最后的 $ ans $ 即可
 

Sample Input
1 4 3 1 3 4 5 2 2 0
 

Sample Output
39997
 

Hint


第一次询问的答案为 $ 3 $, 第二次询问的答案为 $ 4 $,最后 $ ans = 3 * 13331 + 4 = 39997 $。

 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2025 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2025-04-01 07:25:38, Gzip enabled