卡常求助
查看原帖
卡常求助
554746
yiming564楼主2024/1/1 22:24

洛谷的评测机太慢了。在洛谷上测全部tle,本地测都可以在1.6~1.8s内过(cpu i5-10400f)

#include <bits/stdc++.h>

std::vector<uint32_t> prime;
std::vector<char> map;
int n, q, k;
int p;

void init()
{
	map.resize(n + 1);
	int i = 2;
again:
	while (map[i] != 0)
		i++;
	if (i > n)
		return;
	prime.push_back(i);
	p = i;
	while (p <= n)
	{
		map[p] = 1;
		p += i;
	}
	goto again;
}

int main()
{
	scanf("%d %d", &n, &q);
	init();
	for (int i = 0; i < q; i++)
	{
		if (i != 0)
			putchar('\n');
		scanf("%d", &k);
		printf("%d", prime[k - 1]);
	}
	return 0;
}

请问一下如何优化

2024/1/1 22:24
加载中...