差分数组--区间调度问题

适用于寻找很多区间中出现最多的那个元素。。。

**#include   
int a[100011];  
void init(int n)  
{  
    for (int i = 1 ; i <= n ; i++)  
        a[i] = 0;  
}  
int main()  
{  
    int n;  
    while (~scanf ("%d",&n) && n)  
    {  
        init(n);  
        for (int i = 1 ; i <= n ; i++)  
        {  
            int x,y;  
            scanf ("%d %d",&x,&y);  
            a[x]++;  
            a[y+1]--;  
        }  
        printf ("%d",a[1]);  
        for (int i = 2 ; i <= n ; i++)  
        {  
            a[i] += a[i-1];  
            printf (" %d",a[i]);  
        }  
        printf ("\n");  
    }  
    return 0;  
}  **

你可能感兴趣的:(差分数组--区间调度问题)