JZYZOJ1537 [haoi2014]贴海报
Posted 鲸头鹳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JZYZOJ1537 [haoi2014]贴海报相关的知识,希望对你有一定的参考价值。
http://172.20.6.3/Problem_Show.asp?id=1537
用的方法叫作浮水法,实质是递归自下而上判断一个区间有没有覆盖,O(n^2)感觉也没有很实用。
前几年的haoi怎么这么水啊。。。
代码
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<cmath> 6 #include<queue> 7 using namespace std; 8 const int maxn=1010; 9 int n,m; 10 int a[maxn]={},b[maxn]={}; 11 int vis[maxn]={}; 12 int doit(int l,int r,int x){ 13 if(r<l)return 0; 14 if(x==m+1){ 15 return 1; 16 } 17 if(l>b[x]||r<a[x])return doit(l,r,x+1); 18 if(l>=a[x]&&r<=b[x])return 0; 19 if(b[x]<r&&a[x]>l)return doit(l,a[x]-1,x+1)|doit(b[x]+1,r,x+1); 20 if(b[x]<r)return doit(b[x]+1,r,x+1); 21 else return doit(l,a[x]-1,x+1); 22 } 23 int main(){ 24 scanf("%d%d",&n,&m); 25 for(int i=1;i<=m;i++){ 26 scanf("%d%d",&a[i],&b[i]); 27 }int cnt=1; 28 for(int i=m-1;i>=1;i--){ 29 if(doit(a[i],b[i],i+1)){ 30 cnt++; 31 } 32 } 33 printf("%d\n",cnt); 34 return 0; 35 }
以上是关于JZYZOJ1537 [haoi2014]贴海报的主要内容,如果未能解决你的问题,请参考以下文章