[RC-04] 01 背包
题目描述
有一个容积为 $+\infty $ 的背包,你要往里面放物品。
你有 n n n 个物品,第 i i i 个体积为 a i a_i ai。
你有一个幸运数字 p p p,若放入的物品体积和为 k k k,你会得到 p k p^k pk 的收益。特别地, 0 0 = 1 0^0=1 00=1。
求所有 2 n 2^n 2n 种放入物品的方案的收益和。答案很大,因此请输出它对 998244353 998244353 998244353 取模的值。
输入格式
第一行两个整数 n , p n,p n,p。
接下来一行 n n n 个正整数 a 1 ∼ a n a_1\sim a_n a1∼an,描述这 n n n 个物品的体积。
输出格式
输出一个整数,为所有 2 n 2^n 2n 种方案的收益和对 998244353 998244353 998244353 取模的值。
样例 #1
样例输入 #1
2 2
1 4
样例输出 #1
51
提示
【样例解释】
答案为 2 0 + 2 1 + 2 4 + 2 5 = 51 2^0+2^1+2^4+2^5=51 20+21+24+25=51。
【数据范围】
对于所有数据, 1 ≤ n ≤ 1 0 6 1\le n\le 10^6 1≤n≤106, 0 ≤ p , a i < 998244353 0\le p,a_i<998244353 0≤p,ai<998244353。
详细数据范围如下表:
测试点编号 | n n n | p p p | ∑ i = 1 n a i \sum_{i=1}^na_i ∑i=1nai | 每测试点分数 |
---|---|---|---|---|
1 1 1 | = 0 =0 =0 | 2 2 2 | ||
2 ∼ 5 2\sim 5 2∼5 | ≤ 22 \le 22 ≤22 | 6 6 6 | ||
6 ∼ 9 6\sim 9 6∼9 | ≤ 1000 \le 1000 ≤1000 | ≤ 1000 \le 1000 ≤1000 | 6 6 6 | |
10 ∼ 14 10\sim 14 10∼14 | ≤ 100000 \le 100000 ≤100000 | ≤ 100000 \le 100000 ≤100000 | 5 5 5 | |
15 15 15 | 25 25 25 |
Scratch实现
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0mGVOKVe-1721518278336)(https://i-blog.csdnimg.cn/direct/6356d5bbbb6d4601a2fb042000659e1e.png)]
后续
接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容