模板(们)noip前热身练习
Posted LinnBlanc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板(们)noip前热身练习相关的知识,希望对你有一定的参考价值。
分块+莫队
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; /*分块*/ #include<cmath> const int N=10; int pos[N],n,blk; void fenkuai(){ scanf("%d",&n); blk=(int)(double(n)); for(int i=1;i<=n;i++) pos[i]=(i-1)/blk+1; } /*莫队*/ int ans=0; struct qujian{ int le,ri,ans; }q[N]; bool cmp(const qujian &a,const qujian &b){ return pos[a.le]<pos[b.le]||(pos[a.le]==pos[b.le]&&a.ri<b.ri); } void update(int pos,int val){ } void modui(){ scanf("%d",&n); fenkuai(); for(int i=1;i<=n;i++) scanf("%d%d",&q[i].le,&q[i].ri); sort(q+1,q+n+1,cmp); int le,ri; le=ri=0; for(int i=1;i<=n;i++){ while(ri>q[i].ri){ update(ri,-1); ri--; } while(ri<q[i].ri){ update(ri+1,1); ri++; } while(le<q[i].le){ update(le,-1); le++; } while(le>q[i].le){ update(le-1,1); le--; } q[i].ans=ans; } /*...*/ }
以上是关于模板(们)noip前热身练习的主要内容,如果未能解决你的问题,请参考以下文章