提交记录 3270


用户 题目 状态 得分 用时 内存 语言 代码长度
wys noi17a. 【NOI2017】整数 Time Limit Exceeded 60 2 s 3776 KB C++ 1.28 KB
提交时间 评测时间
2018-07-11 02:06:52 2020-07-31 21:14:41
// integer naive.cpp by wys @2017-06-24

#include <stdio.h>
#include <stdint.h>

const int MAXN = 1000005;
const int MAXM = MAXN * 30;
const int MAXLEN = MAXM / 32;

uint32_t A[MAXLEN];

void _add1(int p) {
	while (A[p] == ~0u) {
		A[p++] = 0;
	}
	++A[p];
}

void _sub1(int p) {
	while (A[p] == 0) {
		A[p++] = ~0u;
	}
	--A[p];
}

void _add(int pos, uint32_t val) {
	if ((A[pos] += val) < val) {
		_add1(pos + 1);
	}
}

void _sub(int pos, uint32_t val) {
	if (A[pos] < val) {
		_sub1(pos + 1);
	}
	A[pos] -= val;
}

void add(int _a, int b) {
	if (_a == 0) return;
	
	bool neg = _a < 0;
	uint32_t a = neg ? -_a : _a;
	
	// b/32, b%32, 32-b%32, b/32+1, 0, b%32
	
	int pos = b >> 5;
	int off = b & 31;
	int len1 = 32 - off;
	
	// log(1e9) = 30
	uint32_t part1 = len1 >= 30 ? a : (a & ((1u << len1) - 1));
	uint32_t part2 = len1 >= 30 ? 0 : (a >> len1);
	
	if (part1) (neg ? _sub : _add)(pos, part1 << off);
	if (part2) (neg ? _sub : _add)(pos + 1, part2);
}

int query(int k) {
	return ((A[k >> 5]) >> (k & 31)) & 1u;
}

int main() {
	
	int n, t1, t2, t3;
	scanf("%d%d%d%d", &n, &t1, &t2, &t3);
	
	for (int i = 0; i < n; i++) {
		int op, a, b, k;
		scanf("%d", &op);
		if (op == 1) {
			scanf("%d%d", &a, &b);
			add(a, b);
		} else {
			scanf("%d", &k);
			putchar("01"[query(k)]);
			putchar('\n');
		}
	}
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #18.69 us20 KBAcceptedScore: 4

Testcase #226.48 us20 KBAcceptedScore: 4

Testcase #3213.41 us20 KBAcceptedScore: 4

Testcase #4376.43 us20 KBAcceptedScore: 4

Testcase #5879.81 us20 KBAcceptedScore: 4

Testcase #6929.52 us24 KBAcceptedScore: 4

Testcase #718.707 ms56 KBAcceptedScore: 4

Testcase #81.619 ms24 KBAcceptedScore: 4

Testcase #9198.364 ms144 KBAcceptedScore: 4

Testcase #10684.148 ms224 KBAcceptedScore: 4

Testcase #1132.092 ms64 KBAcceptedScore: 4

Testcase #12465.577 ms292 KBAcceptedScore: 4

Testcase #13993.615 ms316 KBAcceptedScore: 4

Testcase #142 s780 KBTime Limit ExceededScore: 0

Testcase #152 s1 MB + 136 KBTime Limit ExceededScore: 0

Testcase #162 s1 MB + 504 KBTime Limit ExceededScore: 0

Testcase #171.867 s376 KBAcceptedScore: 4

Testcase #182 s2 MB + 228 KBTime Limit ExceededScore: 0

Testcase #192 s2 MB + 604 KBTime Limit ExceededScore: 0

Testcase #2088.141 ms3 MB + 656 KBAcceptedScore: 4

Testcase #212 s3 MB + 336 KBTime Limit ExceededScore: 0

Testcase #222 s308 KBTime Limit ExceededScore: 0

Testcase #232 s3 MB + 460 KBTime Limit ExceededScore: 0

Testcase #242 s304 KBTime Limit ExceededScore: 0

Testcase #252 s3 MB + 704 KBTime Limit ExceededScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-04-18 21:57:43 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠