发一道题,大家练练手
问题描述:一条街的一边有几座房子。因为环保原因想要在路边种些树。路边的地区被分割成块,并被编号1..n。每个块的大小为一个单位尺寸并最多可种一棵树。每个居民想在门前种些树并指定了三个号码b,c,t。这三个数表示该居民想在b和c之间最少种t棵树。当然,b<c,居民必须保证在指定地区不能种多于地区被分割成块的树,即要求t<c-b+1。允许居民想种树的各自区域可以交叉。出于资金短缺的原因,环保部门请你求出能够满足所有居民的要求,需要种树的最少数量。
输入格式:
第1行为n,表示区域的个数;
第2行为h,表示房子的数目;
下面h行三个用空格的数:描述居民的需要b,c,t (0<b<c30,000,t<c-b+1)。
输出格式:
输出为满足所有要求的最少树的数量。
样例输入输出:
trees.in
9
4
1 4 2
4 6 2
8 9 2
3 5 2
trees.out
5
数据范围:
对于30%的数据,0<n<1,000,0<h<500;
对于100%的数据,0<n<30,000,0<h<5,000。
[ 本帖最后由 sunyh1999 于 2010-9-7 19:04 编辑 ]