URAL 1019 - Line Painting

2014-11-23 21:34:17 · 作者: · 浏览: 4

跟前面某个题一样,都是区间染色问题,还是用我的老方法,区间离散化+二分区间端点+区间处理做的,时间跑的还挺短

\vc2R1c3RfZGM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" />

坑爹的情况就是最左端是0,最右端是1e9,区间求的是开区间

#include    
#include    
#include    
#include    
using namespace std;  
typedef struct  
{  
    int l;  
    int r;  
    bool color;  
}seg;  
seg a[5005];  
int t[10005];  
int d[10005],ct;  
int f[10005];  
  
int find(int x,int n)  
{  
    int l=0,r=n-1,mid=(l+r)/2;  
    while(ld[mid])l=mid+1;  
        else r=mid;  
        mid=(l+r)/2;  
    }  
    return mid;  
}  
  
int main()  
{  
    int n;  
        scanf("%d",&n);  
        for(int i=0;imax){  
                                max=d[i]-left;  
                                a1=left;  
                                a2=d[i];  
                        }  
                        left=d[i+1];  
                }  
            }  
        }  
        printf("%d %d\n",a1,a2);  
    return 0;  
}