Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
27834 申东铉 【S】T3 分块 C++ 运行超时 30 2000 MS 11960 KB 820 2024-03-31 10:01:35

Tests(6/20):


#include <bits/stdc++.h> using namespace std; int n,m,B,belong[1000006],ans,l[1000006],r[1000006]; inline void init (int n,int I) { B = I; 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]) { ans += r - l + 1; return; } if (belong[r] > belong[l] + 1) { ans += belong[r] - belong[l] - 1; } int R = belong[l] * B,L = (belong[r] - 1) * B + 1; if (r >= L) { ans += r - L + 1; } if (R >= l) { ans += R - l + 1; } } int main () { scanf("%d%d",&n,&m); for(int i = 1;i <= m;i++) { scanf("%d%d",&l[i],&r[i]); } for (int I = 1;I <= n;I++) { init(n,I); for(int i = 1;i <= m;i++) { query(l[i],r[i]); } printf("%d\n",ans); } }


测评信息: