首页 > 其他 > 详细

【模板(们)】noip前热身练习

时间:2017-11-06 21:52:26      阅读:226      评论:0      收藏:0      [点我收藏+]

分块+莫队

技术分享
#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前热身练习

原文:http://www.cnblogs.com/LinnBlanc/p/7795268.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!