A1316 | [COCI-2015_2016-contest5]#4 PODNIZOVI
来源COCI
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
You are given an array of integers of length N. Let s1, s2, ..., sq be the lexicographically sorted array of all its non-empty subsequences. A subsequence of the array is an array obtained by removing zero or more elements from the initial array. Notice that some subsequences can be equal and that it holds q = 2N −
1.
An array A is lexicographically smaller than array B if Ai < Bi where i is the first position at which the arrays differ, or if A is a strict prefix of array B.
Let us define the hash of an array that consists of values v1, v2, ..., vp as:
h(s) = (v1 · Bp−1 + v2 · Bp−2 + ... + vp−1 · B + vp) mod M where B, M are given integers.
Calculate h(s1), h(s2), ..., h(sK) for a given K.
1.
An array A is lexicographically smaller than array B if Ai < Bi where i is the first position at which the arrays differ, or if A is a strict prefix of array B.
Let us define the hash of an array that consists of values v1, v2, ..., vp as:
h(s) = (v1 · Bp−1 + v2 · Bp−2 + ... + vp−1 · B + vp) mod M where B, M are given integers.
Calculate h(s1), h(s2), ..., h(sK) for a given K.
输入格式
The first line contains integers N, K, B, M (1 6 N 6 100 000, 1 6 K 6 100 000, 1 6 B, M 6 1 000 000).
The second line contains integers a1, a2, a3, ..., aN (1 6 ai 6 100 000).
In all test cases, it will hold K 6 2 N −
1.
The second line contains integers a1, a2, a3, ..., aN (1 6 ai 6 100 000).
In all test cases, it will hold K 6 2 N −
1.
输出格式
Output K lines, the j th line containing h(sj ).
输入输出样例
输入 #1
2 3 1 5 1 2
输出 #1
1 3 2
输入 #2
3 4 2 3 1 3 1
输出 #2
1 1 0 2
输入 #3
5 6 23 1000 1 2 4 2 3
输出 #3
1 25 25 577 274 578
In test cases worth 60% of total points, it will additionally hold 1 6 a1, a2, ..., aN 6 30.
Clarification of the first example: It holds: s1 = [1], s2 = [1, 2], s3 = [2]. h(s1) = 1 mod 5 = 1, h(s2) =
(1 + 2) mod 5 = 3, h(s3) = 2 mod 5 = 2.
Clarification of the second example: It holds: s1 = [1], s2 = [1], s3 = [1, 1], s4 = [1, 3]. h(s1) = 1
mod 3 = 1, h(s2) = 1 mod 3 = 1, h(s3) = (1 · 2 + 1) mod 3 = 0, h(s4) = (1 · 2 + 3) mod 3 = 2.
Clarification of the first example: It holds: s1 = [1], s2 = [1, 2], s3 = [2]. h(s1) = 1 mod 5 = 1, h(s2) =
(1 + 2) mod 5 = 3, h(s3) = 2 mod 5 = 2.
Clarification of the second example: It holds: s1 = [1], s2 = [1], s3 = [1, 1], s4 = [1, 3]. h(s1) = 1
mod 3 = 1, h(s2) = 1 mod 3 = 1, h(s3) = (1 · 2 + 1) mod 3 = 0, h(s4) = (1 · 2 + 3) mod 3 = 2.
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted