Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
1817 | 18级蔡越同 | 【S】T3 分块 | C++ | 运行超时 | 30 | 2000 MS | 11964 KB | 725 | 2020-11-16 10:11:06 |
#include <bits/stdc++.h> using namespace std; int n,m,ans,B,belong[1000010],l[1000010],r[1000010]; void init(int x){ B=x;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 main(){ cin>>n>>m; for(int i=1;i<=m;i++) scanf("%d%d",&l[i],&r[i]); for(int i=1;i<=n;i++){ init(i); for(int j=1;j<=m;j++){ query(l[j],r[j]); } cout<<ans<<endl; } return 0; }