UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#213592#2770. 子序列STASISZHY02600ms207480kbC++111.7kb2024-11-12 21:25:222024-11-12 23:52:10

answer

// Problem: D. 子序列
// Contest: undefined - NOIP2024训练赛 03
// URL: http://119.28.3.174/contest/1155/problem/2770
// Memory Limit: 1024 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

// #pragma GCC optmize("OFAST");
#pragma GCC optimize(3,"Ofast","inline")
#include<bits/stdc++.h>
#define int long long
#define fi first
#define se second
#define PII pair<int, int>

using namespace std;

const int N = 2e5 + 10, M = 1e6 + 10, mod = 998244353, INF = 0x3f3f3f3f;

int n, m, q, ans;
int s[N], dp[N];

vector<int> e[N];

struct Tree
{
	int l, r, sum[30] = {};
}tr[N << 2];

Tree merge(Tree a, Tree b)
{
	Tree res; res.l = a.l, res.r = b.r;
	for(int i = 0; i < m; i ++)
	{
		for(int x = 0; x < m; x ++)
		{
			int y = i - x; if(y < 0) y += m;
			res.sum[i % m] = (res.sum[i % m] + a.sum[x] * b.sum[y]) % mod;
		}
	}
	return res;
}

inline void pushup(int x) {tr[x] = merge(tr[2 * x], tr[2 * x + 1]);}

void build(int x, int l, int r)
{
	tr[x].l = l, tr[x].r = r;
	if(l == r)
	{
		tr[x].sum[s[l] % m] = 1, tr[x].sum[0] += 1;
		return;
	}
	int mid = l + r >> 1;
	build(2 * x, l, mid);
	build(2 * x + 1, mid + 1, r);
	pushup(x);
}

Tree query(int x, int l, int r)
{
	if(tr[x].l >= l && tr[x].r <= r) return tr[x];
	int mid = tr[x].l + tr[x].r >> 1;
	if(l > mid) return query(2 * x + 1, l, r);
	else if(r <= mid) return query(2 * x, l, r);
	else return merge(query(2 * x, l, r), query(2 * x + 1, l, r));
}

signed main()
{
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	cin >> n >> m;
	for(int i = 1; i <= n; i ++) cin >> s[i];
	build(1, 1, n);
	cin >> q;
	while(q --)
	{
		int l, r; cin >> l >> r;
		// cout << query(1, l, r).sum[0] << '\n';
	}	
	return 0;
}

详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 0
Wrong Answer
time: 24ms
memory: 205904kb

input:

10 20
7 5 5 1 7 13 19 10 2 7
10
10 10
6 7
6 8
4 10
8 9
5 8
6 10
5 5
2 6
6 8

output:


result:

wrong answer 1st lines differ - expected: '1', found: ''

Test #2:

score: 0
Wrong Answer
time: 15ms
memory: 205904kb

input:

10 20
15 0 15 10 6 18 1 13 3 1
10
1 2
4 9
3 7
4 8
6 10
2 3
1 4
2 5
2 9
5 9

output:


result:

wrong answer 1st lines differ - expected: '2', found: ''

Test #3:

score: 0
Wrong Answer
time: 27ms
memory: 205908kb

input:

10 20
8 9 17 13 10 13 16 11 19 3
10
6 9
3 9
2 6
1 10
5 10
6 10
4 5
2 4
10 10
3 5

output:


result:

wrong answer 1st lines differ - expected: '2', found: ''

Test #4:

score: 0
Wrong Answer
time: 12ms
memory: 205904kb

input:

10 20
12 8 11 1 0 3 2 3 19 17
10
5 7
1 3
1 10
2 6
4 10
5 9
5 9
3 10
4 8
4 8

output:


result:

wrong answer 1st lines differ - expected: '2', found: ''

Test #5:

score: 0
Wrong Answer
time: 24ms
memory: 205908kb

input:

10 20
7 0 2 2 8 12 10 7 1 2
10
9 9
6 9
3 7
3 8
1 6
2 4
6 8
4 5
1 6
8 9

output:


result:

wrong answer 1st lines differ - expected: '1', found: ''

Test #6:

score: 0
Wrong Answer
time: 11ms
memory: 205908kb

input:

100 20
3 15 11 17 7 9 16 11 6 0 1 1 19 15 18 0 14 12 17 9 19 12 18 9 4 14 11 5 18 10 4 18 14 8 14 8 ...

output:


result:

wrong answer 1st lines differ - expected: '2', found: ''

Test #7:

score: 0
Wrong Answer
time: 20ms
memory: 205912kb

input:

100 20
3 7 17 4 9 6 6 15 18 1 3 5 19 13 2 7 9 10 4 5 0 10 18 18 6 0 1 15 16 12 2 7 6 0 17 2 14 18 4 ...

output:


result:

wrong answer 1st lines differ - expected: '3355488', found: ''

Test #8:

score: 0
Wrong Answer
time: 20ms
memory: 205904kb

input:

100 20
1 11 5 10 8 2 11 14 2 11 7 4 13 4 2 1 13 4 0 13 4 8 3 12 12 17 12 13 16 2 5 12 13 0 5 11 0 7 ...

output:


result:

wrong answer 1st lines differ - expected: '26391984', found: ''

Test #9:

score: 0
Wrong Answer
time: 32ms
memory: 205912kb

input:

100 20
8 18 4 8 11 9 1 19 7 14 7 13 4 3 14 0 10 3 13 16 2 5 17 18 7 10 7 3 19 1 16 18 7 13 19 13 2 1...

output:


result:

wrong answer 1st lines differ - expected: '804', found: ''

Test #10:

score: 0
Wrong Answer
time: 35ms
memory: 205908kb

input:

100 20
17 1 13 11 0 8 12 2 4 15 14 18 6 6 5 16 18 4 6 19 4 0 4 6 10 19 5 4 18 17 14 16 3 0 1 6 2 4 0...

output:


result:

wrong answer 1st lines differ - expected: '107223667', found: ''

Test #11:

score: 0
Wrong Answer
time: 43ms
memory: 205928kb

input:

1000 20
7 14 19 15 16 8 19 15 5 5 6 3 4 16 0 1 7 6 14 3 12 2 4 5 16 12 12 8 1 9 6 13 4 10 12 16 11 7...

output:


result:

wrong answer 1st lines differ - expected: '339309012', found: ''

Test #12:

score: 0
Wrong Answer
time: 24ms
memory: 205924kb

input:

1000 20
16 7 12 15 13 10 8 1 14 16 13 6 16 7 4 11 0 17 6 3 4 8 17 10 3 11 18 13 17 19 15 4 7 17 12 4...

output:


result:

wrong answer 1st lines differ - expected: '12', found: ''

Test #13:

score: 0
Wrong Answer
time: 22ms
memory: 205924kb

input:

1000 20
7 7 16 0 12 6 11 3 7 16 12 11 1 7 17 0 11 8 14 17 8 17 7 18 1 11 14 0 6 5 10 0 12 15 1 4 5 1...

output:


result:

wrong answer 1st lines differ - expected: '425631668', found: ''

Test #14:

score: 0
Wrong Answer
time: 35ms
memory: 205924kb

input:

1000 20
19 3 14 11 9 17 18 4 11 5 0 18 2 11 13 12 8 10 15 19 12 9 2 15 5 19 14 17 17 7 18 5 2 8 5 0 ...

output:


result:

wrong answer 1st lines differ - expected: '778881096', found: ''

Test #15:

score: 0
Wrong Answer
time: 11ms
memory: 205920kb

input:

1000 20
16 19 4 2 2 19 19 5 11 4 16 7 17 6 11 11 7 10 6 3 15 1 11 12 5 11 12 13 3 10 12 2 19 9 4 8 6...

output:


result:

wrong answer 1st lines differ - expected: '137484337', found: ''

Test #16:

score: 0
Wrong Answer
time: 48ms
memory: 205996kb

input:

10000 20
12 8 12 19 9 19 1 10 19 11 12 10 19 5 0 16 17 1 9 18 18 13 6 0 14 16 6 6 3 6 17 2 13 19 13 ...

output:


result:

wrong answer 1st lines differ - expected: '874193350', found: ''

Test #17:

score: 0
Wrong Answer
time: 47ms
memory: 205992kb

input:

10000 20
8 15 6 17 5 13 11 1 7 9 16 16 15 12 4 19 18 2 3 10 13 15 12 5 3 6 15 2 0 11 8 19 13 18 12 1...

output:


result:

wrong answer 1st lines differ - expected: '11498054', found: ''

Test #18:

score: 0
Wrong Answer
time: 39ms
memory: 205996kb

input:

10000 20
0 9 6 6 17 19 11 13 18 14 0 10 3 0 0 11 12 11 2 19 18 12 13 16 8 7 14 12 10 2 7 3 4 18 10 1...

output:


result:

wrong answer 1st lines differ - expected: '963045808', found: ''

Test #19:

score: 0
Wrong Answer
time: 43ms
memory: 205992kb

input:

10000 20
5 13 8 2 2 13 16 17 9 8 15 10 1 12 2 18 19 1 0 17 9 7 16 14 0 9 19 14 13 3 19 17 5 3 19 17 ...

output:


result:

wrong answer 1st lines differ - expected: '875247851', found: ''

Test #20:

score: 0
Wrong Answer
time: 32ms
memory: 205996kb

input:

10000 20
5 8 19 15 4 8 12 14 4 5 16 13 17 9 3 3 15 4 15 19 17 8 14 16 16 13 19 18 19 7 13 5 11 11 12...

output:


result:

wrong answer 1st lines differ - expected: '48', found: ''

Test #21:

score: 0
Wrong Answer
time: 408ms
memory: 207476kb

input:

200000 20
11 5 3 3 2 9 10 10 15 4 19 1 3 0 19 19 15 0 0 12 14 16 1 8 3 18 10 6 14 11 2 7 17 2 0 1 12...

output:


result:

wrong answer 1st lines differ - expected: '57545307', found: ''

Test #22:

score: 0
Wrong Answer
time: 417ms
memory: 207480kb

input:

200000 20
13 15 5 3 2 0 3 4 6 16 14 0 4 11 8 10 18 5 3 12 1 7 2 16 13 19 16 16 3 16 6 8 2 6 10 0 13 ...

output:


result:

wrong answer 1st lines differ - expected: '110393808', found: ''

Test #23:

score: 0
Wrong Answer
time: 417ms
memory: 207480kb

input:

200000 20
15 8 8 12 19 10 4 14 16 6 3 17 13 4 14 17 5 15 19 4 0 3 17 5 4 9 14 19 10 11 9 13 0 3 18 0...

output:


result:

wrong answer 1st lines differ - expected: '218640057', found: ''

Test #24:

score: 0
Wrong Answer
time: 401ms
memory: 207480kb

input:

200000 20
11 4 7 18 16 15 15 18 11 2 4 1 17 18 6 9 19 12 2 14 8 6 10 4 15 16 17 13 18 1 15 18 15 9 1...

output:


result:

wrong answer 1st lines differ - expected: '438860874', found: ''

Test #25:

score: 0
Wrong Answer
time: 393ms
memory: 207476kb

input:

200000 20
5 3 18 11 17 13 14 19 0 0 1 3 4 13 8 1 15 7 15 2 12 8 3 15 8 1 4 8 7 5 9 16 9 16 0 14 2 16...

output:


result:

wrong answer 1st lines differ - expected: '739309565', found: ''