救救孩子…………

P1865 A % B Problem

数组开大,爆栈了呀
by lngym @ 2023-01-31 12:35:11


$10^6$ 就够了,为什么开那么多
by xiaoqian02 @ 2023-01-31 12:38:54


改了一下,还是有一个TLE/(ㄒoㄒ)/~~ 救救孩子~~~ ``` #include<bits/stdc++.h> #define MAXN 99999999 using namespace std; long long a[MAXN]; bool b[MAXN]; inline long long read() { long long s = 0, f = 1; char a = getchar(); while (a > '9' || a < '0') { if (a == '-') { f = -1; } a = getchar(); } while (a <= '9' && a >= '0') { s = ((s << 3) + (s << 1)) + a - '0'; a = getchar(); } return s * f; } void ny(long long n) { long long x = 1; for (long long i = 2; i <= n; i++) { if (b[i]) { a[x] = i; x++; } for (int j = 1; j <= x && a[j] * i <= n; j++) { b[a[j] * i] = false; if (i % a[j] == 0) break; } } } int main() { long long L, r, m, n, num; memset(b, true, sizeof(b)); //scanf("%lld%lld", &n, &m); n = read(); m = read(); ny(m); for (int i = 0; i < n; i++) { //scanf("%lld%lld", &L, &r); L = read(); r = read(); if (r > m || L < 1) { printf("Crossing the line\n"); continue; } num = 0; for (int j = 0; a[j] <= r; j++) { num += a[j] >= L ? 1 : 0; } printf("%lld\n", num); } return 0; } ```
by wkl20110514 @ 2023-01-31 12:46:51


哪儿还可以改进啊…………………………………………………………………………
by wkl20110514 @ 2023-01-31 12:47:20


|