The Imp

Problem's Link: http://acm.hnu.cn/online/?action=problem&type=show&id=13404&courseid=0


Mean:

n个物品,每个物品价值为v,价格为c,你只可以带一个物品离开。

有一个精灵,它可以施法让你购买后的物品价值变为0(未离开商店之前),精灵最多施k次法术。

你的目的是让自己获得最大收益,而小鬼的目的正好相反。
如果你和精灵都采用最优策略,最后你可以盈利多少?

analyse:

第一感觉是三维dp,然而三维肯定会超时超内存。
然后就是想怎样压缩状态。。。
想了想其实两维就够了,为什么呢?因为对于第i件物品,如果我不选,那么它这次施不施法是没有影响的。
dp[i][j]:判断到第i个物品,精灵施了j次魔法,我还能获得的最大收益。
状态转移方程:dp[i][j]=max(dp[i-1][j],min(dp[i-1][j-1]-c,v-c))

伪代码:

for_each i
{
   if(select i)
   {
       for_each j
       {
           if(magic j time)
           {
               max(before i) - cost;
           }
           else
           {
               value-cost;
           }
       }
   }
   else
   {
       max(before i);
   }
}

Time complexity: O(N*K)

Source code: 

;
);
     ; );
           ; ; ;
}
/*

*/

dp - HNU 13404 The Imp的更多相关文章

  1. 获取dmp文件的schema

    白天的时候,做了一个获取dmp文件的schema实验,特此记录一下. 参考文章:如何获取dmp文件的schema  -- by 我的烟灰缸 http://oradb.cc/2017/07/10/%E5 ...

  2. UOJ276 [清华集训2016] 汽水 【二分答案】【点分治】【树状数组】

    题目分析: 这种乱七八糟的题目一看就是点分治,答案有单调性,所以还可以二分答案. 我们每次二分的时候考虑答案会不会大于等于某个值,注意到系数$k$是无意义的,因为我们可以通过转化使得$k=0$. 合并 ...

  3. CF613D Kingdom and its Cities 虚树

    传送门 $\sum k \leq 100000$虚树套路题 设$f_{i,0/1}$表示处理完$i$以及其所在子树的问题,且处理完后$i$所在子树内是否存在$1$个关键点满足它到$i$的路径上不存在任 ...

  4. HNU 13108-Just Another Knapsack Problem (ac自动机上的dp)

    题意: 给你一个母串,多个模式串及其价值,求用模式串拼接成母串(不重叠不遗漏),能获得的最大价值. 分析: ac自动机中,在字典树上查找时,用dp,dp[i]拼成母串以i为结尾的子串,获得的最大价值, ...

  5. HNU OJ10086 挤挤更健康 记忆化搜索DP

    挤挤更健康 Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit users: 339, A ...

  6. HNU 13108 Just Another Knapsack Problem DP + Trie树优化

    题意: 给你一个文本串,和一些模式串,每个模式串都有一个价值,让你选一些模式串来组成文本串,使获得的价值最大.每个模式串不止能用一次. 思路: 多重背包,枚举文本串的每个位置和模式串,把该模式串拼接在 ...

  7. HNU 12961 BitTorrent DP

    题意: 你在网上下载东西,一个文件存储在一段或者多段里面,问怎么选择能在规定的流量内下载最多的文件数量.每段的大小一样. 思路: 习惯了做答案保存在DP数组里的题,做这种答案保存在下标里的题,转不过弯 ...

  8. dp + 预处理前缀和 - HNU 13248 Equator

    Equator Problem's Link: http://acm.hnu.cn/online/?action=problem&type=show&id=13248&cour ...

  9. dp or 贪心 --- hdu : Road Trip

    Road Trip Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit users: 29 ...

随机推荐

  1. es5 - array - join

    /** * join描述:将数组(或类数组对象)的所有元素连接到一个字符串中并返回此字符串. * join语法:arr .join([ separator]) * join参数:指定用于分隔数组的每对 ...

  2. cocos2d-x eclipse + NDK 自动编译配置

    文章来自:http://www.cocos2dres.com/view.asp?id=90 1. 准备工作: android NDK    r8版本 ADT Bundle 下载地址:http://de ...

  3. java的21个技术点归纳学习

  4. ant design pro (十五)advanced 使用 API 文档工具

    一.概述 原文地址:https://pro.ant.design/docs/api-doc-cn 在日常开发中,往往是前后端分离的,这个时候约定好一套接口标准,前后端各自独立开发,就不会被对方的技术难 ...

  5. DBA 需要知道N种对数据库性能的监控SQL语句

    --DBA 需要知道N种对数据库性能的监控SQL语句 -- IO问题的SQL内部分析 下面的DMV查询可以来检查当前所有的等待累积值. Select wait_type, waiting_tasks_ ...

  6. unix 网络编程 第七章

    1     getsockopt和setsockopt函数 套接字选项粗分为两大基本类型:一是启用或禁止某个特性的二元选项,二是取得并返回特定值的选项,参数都是以指针形式传入的. 2     套接字状 ...

  7. 转:sock_ev——linux平台socket事件框架(logTrace) .

    写代码要有调试log,采用syslog的输出:一般会输出到"/var/log/messages" /**************************************** ...

  8. myql基准测试工具Sysbench

    一.Sysbench介绍 SysBench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.它主要包括以下几种方式的测试: 1.cpu性能 2.磁盘io性 ...

  9. mysql优化 慢查询(一)

    1.显示慢查询的一些参数的命令:show variables like '%slow%';结果如图

  10. log4cplus基础知识

    一.简介: log4cplus是C++编写的开源的日志系统. 具有线程安全.灵活.以及多粒度控制的特点,通过将信息划分优先级使其可以面向程序调试.运行.测试.和维护等全生命周期: 你可以选择将信息输出 ...