GDOI2007模拟-打鼹鼠

Description
  Jby最近喜欢玩一个打鼹鼠的游戏,这个游戏是这样的:
  有m只鼹鼠出现在一个1 ~ n的长条上。对于第k只鼹鼠,我们用t[k], w[k], x[k]来描述。即在t[k]时刻,会有一只分值为w[k]的鼹鼠k出现在位置x[k]上。现在你有一个锤头,每一时刻它都停留在一个位置上。你可以用它不费时间的敲死一只鼹鼠并得到相应的分值。但是每个时刻你的锤头最多只能移动p格。也就是说如果s时刻你在位置pos,那么s + 1时刻你运动到位置pos – p ~ pos + p。
  在零时刻你的锤子可以在任意位置。鼹鼠出现的时刻大于0。并且同一时间同一位置不会有两只鼹鼠出现,因为他们太胖了。
  而Jby希望拿到的分值最大,但总是很难实现,你能帮助他吗?

Input
  本题只有一组数据。
  第一行两个正整数n,m,p如题中定义。
  然后m行每行三个正整数t[k], w[k], x[k]描述第k只鼹鼠。
  N <= 100000;M <= 100000;p <= 5;t[k] <= 100000。1<=x[k]<=n
  注意,本题输入数据较大,对于使用C++的选手需要使用scanf来读入。

Output
  只有一行一个整数为最大得分。保证答案不会超过长整型。

Sample Input
5 20 1
2 17392 5
3 21061 3
5 21177 4
6 25416 1
7 23512 4
9 27947 1
13 12313 3
14 1126 5
15 27358 2
16 17741 3
17 23412 4
18 32142 2
19 7729 2
20 23539 1
22 15923 2
26 5083 1
31 6022 1
33 24950 3
34 29713 2
35 13623 5

Sample Output
276937

Hint
  对于30%的数据有p = 1;M<=1000;
  对于60%的数据有N*M<=10^6
  对于100%的数据如题目描述。

想法:
在这里插入图片描述
笔者较懒,未实现,也就无附代码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值