洛谷的评测机太慢了。在洛谷上测全部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;
}
请问一下如何优化