#157. 「Fence」 围栏

「Fence」 围栏

有N块木板从左到右排成一行,有M个工匠对这些木板进行粉刷,每块木板至多被粉刷一次。

第 i 个木匠要么不粉刷,要么粉刷包含木板 S_iS\_i 的,长度不超过 L_iL\_i 的连续的一段木板,每粉刷一块可以得到 P_iP\_i 的报酬。

不同工匠的S_iS\_i不同。

请问如何安排能使工匠们获得的总报酬最多。

输入格式

第一行包含两个整数N和M。

接下来M行,每行包含三个整数L_i,P_i,S_iL\_i,P\_i,S\_i

输出格式

输出一个整数,表示结果。

数据范围

1N160001 \le N \le 16000,
1M1001 \le M \le 100,
1P_i100001 \le P\_i \le 10000

输入样例:

8 4
3 2 2
3 2 3
3 3 5
1 1 7 

输出样例:

17

来源

  • 《算法竞赛进阶指南》
  • acwing 可能含有视频讲解