浮水法40WA,求助

P3740 [HAOI2014] 贴海报

星灵王 @ 2018-10-26 09:31:10

#include<iostream>
using namespace std;
int a[1005],b[1005];
int n,m,cur,ans; 
bool b1[1005];
void search(int x,int y,int z)
{
    if(b1[cur])
    return ;
    if(z<=m&&(y<a[z]||x>b[z])) 
    z++;
    if(z>m)
    ans++,b1[cur]=true;
    if(x<a[z])
    search(x,a[z]-1,z+1);
    if(b[z]<y)
    search(b[z]+1,y,z+1);
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    cin>>a[i]>>b[i];
    for(cur=m-1;cur>=1;cur--)
    search(a[cur],b[cur],cur+1);
    cout<<ans+1<<endl;
    return 0;
}

by 星灵王 @ 2018-10-26 09:31:58

没怎么系统地学过浮水法,各位大佬有什么好的资料吗?


|