| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:此题绝壁有问题~下面的ac程序对于数据 1 11 1 2 3 6竟然输出3~其实应该是-1In Reply To:此题绝壁有问题~下面的ac程序对于数据 1 11 1 2 3 6竟然输出3~其实应该是-1 Posted by:xc19881023 at 2016-05-30 12:28:01 > #include<cstdio>
> #include<algorithm>
> #include<cstring>
> using namespace std;
> const int L=1000005,inf=0x3f3f3f3f;
> bool ck[L];
> struct Line
> {
> int left,right,val;
> }line[L*4];
> void build(int now,int left,int right)
> {
> line[now].left=left;
> line[now].right=right;
> line[now].val=inf;
> if(left==right)return;
> build(now*2,left,(left+right)>>1);
> build(now*2+1,(left+right)/2+1,right);
> }
> void updata(int now,int pos,int val)
> {
> int ll=line[now].left,rr=line[now].right,mid;
> if(ll==pos&&rr==pos)
> {
> line[now].val=min(line[now].val,val);
> return;
> }
> mid=(ll+rr)>>1;
> if(pos<=mid)
> updata(now*2,pos,val);
> else
> updata(now*2+1,pos,val);
> line[now].val=min(line[now*2].val,line[now*2+1].val);
> }
> int getmin(int now,int left,int right)
> {
> int ll=line[now].left,rr=line[now].right,mid;
> if(ll==left&&rr==right)
> return line[now].val;
> mid=(ll+rr)>>1;
> if(right<=mid)
> return getmin(now*2,left,right);
> else if(left>mid)
> return getmin(now*2+1,left,right);
> else
> return min(getmin(now*2,left,mid),getmin(now*2+1,mid+1,right));
> }
> int main()
> {
> int n,len,a,b,ans;
> while(scanf("%d%d",&n,&len)!=EOF)
> {
> build(1,0,len/2);
> scanf("%d%d",&a,&b);
> memset(ck,true,sizeof(ck));
> for(int i=0,x,y;i<n;i++)
> {
> scanf("%d%d",&x,&y);
> memset(ck+x+1,false,(y-x-1)*sizeof(bool));
> }
> updata(1,0,0);
> for(int i=a*2;i<=len;i+=2)
> {
> if(ck[i])
> {
> int x=i/2-b,y=i/2-a,tp;
> x=max(0,x);
> tp=getmin(1,x,y);
> if(tp==inf)
> tp--;
> updata(1,i/2,tp+1);
> }
> }
> ans=getmin(1,len/2,len/2);
> printf("%d\n",ans<inf?ans:-1);
> }
> return 0;
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator