经典算法之剩下的树C

发布时间 2024-01-06 19:18:55作者: 神奇的萝卜丝

这题思路可以说是太简单了。

用一个数组表示树,值为1表示有树,值为零表示无就行。、

最后统计1的个数即为剩下的树。

#include <stdio.h>
#include <malloc.h>
void move (int A[],int head,int tail){
    for( ; head <= tail ; head++ ){
        A[head]= 0 ;
    }
}

int main( ){
    int l = 0, m = 0 ;
    while( scanf("%d %d",&l,&m) != EOF ){
        int* A=(int*)malloc( sizeof(int) * (l+1) ) ;
        for(int i = 0 ; i <= l ; i++ ){
            A[i] = 1 ;
        }
        while(m>0){
            int head = 0, tail = 0;
            scanf("%d %d",&head,&tail);
            move(A,head,tail);
            m--;
        }
        int sum = 0 ;
        for(int i = 0 ; i <= l ; i++ ){
            if(A[i]==1){
                sum++;
            }
        }
        printf("%d\n",sum);
    }
    return 0 ;
}

结果如下: