首页 > 其他 > 详细

一些乱搞集锦

时间:2019-12-31 23:28:58      阅读:88      评论:0      收藏:0      [点我收藏+]

题目描述

n个技能,第i个技能造成w[i]点伤害,需要c[i]点能量值,可以使用l[i]次。现有q次询问,每次询问在不使用技能cj时,有cc点能量,最多造成几点伤害。

数据范围

n,cc<=1000,l<=100,q<=300000.

题目解析

背包

首先处理出f[i][j]表示前i个技能总共j个能量造成伤害最大值,g[i][j]表示i——n这些技能总共j个能量造成伤害最大值。

询问时查询f[cj-1][k]+g[cj+1][cc-k]的最大值。

但是发现时间复杂度O(cc*q) 3e8,如果被卡可能过不到。

使用三分法分出一个<=250的范围再在该范围内枚举即可降到低于1e8.正确性较高,可以水过。

一些乱搞集锦

原文:https://www.cnblogs.com/betablewaloot/p/12127879.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!