QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#749940#4900. 数列重排NineSuns0 349ms4356kbC++141.6kb2024-11-15 11:35:082024-11-15 11:35:14

Judging History

你现在查看的是最新测评结果

  • [2024-11-15 11:35:14]
  • 评测
  • 测评结果:0
  • 用时:349ms
  • 内存:4356kb
  • [2024-11-15 11:35:08]
  • 提交

answer

#include <bits/stdc++.h>
#define ll long long
#define pii pair <int, int>
#define fi first
#define se second
#define pb push_back
#define int long long

using namespace std;
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
const int N = 1e7+5, inf = 0x3f3f3f3f3f3f3f3f, mod = 998244353; 
int m, L, R, x, n;   
string str; 

inline int sum (int n) { return n*(n+1)/2; }
inline int gets (int k, int c) {
	return sum(k/c)*c+k/c+1; 
}
inline int gv (int i, int sl, int cx, int j) {
	return -j*i+gets(j, 2)+gets(sl-j, cx-1); 
}

void solve () {
	cin >> m >> L >> R >> x >> str; 
	n = m*x; 
	for (int i = 0;i < m;i++) {
		n += str[i]-'0'; 
	}
	int lt = 1, res = 0, k = 0;
	if (L == 0) res ^= sum(n)%mod;
	for (int i = 0;i < m;i++) {
		lt = lt*233%mod; 
		if (str[i] == '1') k++; 
		int ans = 0, sl, cx; 
		if (k == i+1) {
			sl = n-(i+1)*(x+1); cx = x+1;  
		}
		else {
			sl = n-(i+1)*x-k; cx = x; 
			ans += k*i; 
		}
		int sv; 
//		for (int j = 0;j <= sl;j++) cout << gv(i, sl, cx, j) << " " ;cout << endl; 
		if (cx > 1) {
			int l = 0, r = sl; 
			while (l < r) {
				int mid = l+r+1>>1; 
				if (gv(i, sl, cx, mid)-gv(i, sl, cx, mid-1) < 0) l = mid; 
				else r = mid-1; 
			}
			sv = gv(i, sl, cx, l);
		}
		else sv = -sl*i+gets(sl	, 2); 
		ans += sv+2*i*sl+i*(i+1)*(cx-1)+sum(i)+i;
		ans = sum(n)-ans; 
		if (L <= i+1 && i+1 <= R) res ^= ans%mod*lt%mod; 
	}
	cout << res; 
}

signed main () {
//	freopen("t.out", "w" ,stdout); 
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);	
	int T = 1; //cin >> T;
	while (T--) solve();
	return 0;
}

详细

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3728kb

input:

2 0 2 2
01

output:

436175

result:

wrong answer 1st numbers differ - expected: '541257', found: '436175'

Subtask #2:

score: 0
Skipped

Dependency #1:

0%

Subtask #3:

score: 0
Skipped

Dependency #2:

0%

Subtask #4:

score: 0
Wrong Answer

Test #14:

score: 0
Wrong Answer
time: 0ms
memory: 3648kb

input:

2 0 1 114514
10

output:

969849273

result:

wrong answer 1st numbers differ - expected: '934764137', found: '969849273'

Subtask #5:

score: 0
Wrong Answer

Test #17:

score: 0
Wrong Answer
time: 349ms
memory: 4352kb

input:

1000000 1000000 1000000 928
01100010010000000101111110001111011101111000011110100101011110011001001000011000110101101100111110000100101010111001111100010011100110000000111110110100001100000000011101100001010001010000010000001001000110011111010101111100001001110110010100000011000010010001111010011100...

output:

196036026

result:

wrong answer 1st numbers differ - expected: '437299311', found: '196036026'

Subtask #6:

score: 0
Wrong Answer

Test #19:

score: 0
Wrong Answer
time: 8ms
memory: 4264kb

input:

1000000 0 1000000 1
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

695387255

result:

wrong answer 1st numbers differ - expected: '852768823', found: '695387255'

Subtask #7:

score: 0
Wrong Answer

Test #21:

score: 0
Wrong Answer
time: 347ms
memory: 4356kb

input:

1000000 0 9823 627
01110001011101001100010011100101001011000011011110001101010000000101010111110111110010010001110100101001111000111100011101111001000000100111000010010100010101110110111110100010101010001110111001100011010001111000101010000110010010101110101010111110110001110111111000001110000110011...

output:

953018044

result:

wrong answer 1st numbers differ - expected: '383638431', found: '953018044'

Subtask #8:

score: 0
Skipped

Dependency #1:

0%

Subtask #9:

score: 0
Skipped

Dependency #1:

0%