Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
1822 18级尹玉文东 【S】T3 分块 C++ 运行超时 30 2000 MS 312 KB 871 2020-11-16 10:32:13

Tests(6/20):


#include <bits/stdc++.h> using namespace std; int B, n, m, ans, belong[5008]; void init() { ans = 0; for(int i = 1; i <= n; i++) { belong[i] = (i - 1) / B + 1; } } void query(int l,int r) { if(belong[l] == belong[r]) { for(int i = l; i <= r; i++) ++ans; return; } for(int i = belong[l] + 1; i < belong[r]; i++) ++ans; int R = belong[l] * B, L = (belong[r] - 1) * B + 1; for(int i = L; i <= r; i++) ++ans; for(int i = l; i <= R; i++) ++ans; } int ll[5008], rr[5008]; int main() { scanf("%d%d", &n, &m); for(int i = 1; i <= m; i++) { scanf("%d%d", &ll[i], &rr[i]); } for(B = 1; B <= n; B++) { init(); for(int i = 1; i <= m; i++) { query(ll[i], rr[i]); } cout << ans << " "; } return 0; }


测评信息: