Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
27844 22级廖思学 【S】T3 分块 C++ 运行超时 30 2000 MS 8068 KB 1099 2024-03-31 10:54:21

Tests(6/20):


#include<bits/stdc++.h> using namespace std; struct Query{ int l,r; }q[1000010]; int B; int belong(int i){ return (i-1)/B+1; } int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=m;i++){ cin>>q[i].l>>q[i].r; } for(B=1;B<=n;B++){ int ans=0; for(int i=1;i<=m;i++){ int l=q[i].l,r=q[i].r; if(belong(l)==belong(r))ans+=r-l+1; else{ int lR=belong(l)*B-l+1; int Lr=r-(belong(r)-1)*B; int RL=belong(r)-1-belong(l); ans=ans+lR+Lr+RL; } } cout<<ans<<" "; } return 0; } /*void init(int n) { B=sqrt(n);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() { scanf("%d%d",&n,&m);init(n); for(int i=1,l,r;i<=m;i++) { scanf("%d%d",&l,&r); query(l,r); } cout<<ans<<endl; } */


测评信息: