首页 > 其他分享 >P4765 The Imp

P4765 The Imp

时间:2024-11-18 15:22:34浏览次数:1  
标签:nk P4765 Imp 升序 恶魔 物品 DP

传送门

发现 \(nk\) 可行,猜测是 \(O(nk)\) 的 DP。

容易想到设计 \(dp[i][j]\) 表示前 \(i\) 个物品,允许恶魔使用 \(j\) 次魔法的最大价值。

但是这样转移是有后效性的,因为恶魔可能在只考虑前 \(i\) 个物品的时候 与 只考虑前 \(j\) 个物品的时候 对于某个物品是否要使用魔法的决策不同。

这种情况下一种办法是考虑贪心,把 DP 的顺序确定下来。

比如这题,我们断言:最优的买物品的顺序一定是按 \(v_i\) 升序购买。

证明:对两个物品 \((v_1,c_1),(v_2,c_2)\),假设 \(v_1<v_2\)。\(v_1,v_2\) 的顺序的结果是 \(\min(v_1-c_1,v_2-c_1-c_2)\),\(v_2,v_1\) 的顺序结果是 \(\min(v_2-c_2,v_1-c_1-c_2)\)。

因为 \(v_1<v_2\),所以 \(\min(v_2-c_2,v_1-c_1-c_2)=v_1-c_1-c_2<\min(v_1-c_1,v_2-c_1-c_2)\)。所以前者总是比后者更优。证毕。

把物品按 \(v\) 升序排序。按 \(n\rightarrow 1\) 的顺序递推即可。(因为当恶魔决定要不要对 \(i\) 施法,与其相关的是 \(i+1\sim n\) 的情况)

标签:nk,P4765,Imp,升序,恶魔,物品,DP
From: https://www.cnblogs.com/FLY-lai/p/18552696

相关文章

  • from bson import ObjectId
    ObjectId是MongoDB中用于标识文档的唯一标识符(ID),由BSON库(bson)提供的一个类。以下是ObjectId的作用及其常用操作。ObjectId的作用唯一标识文档:每个存储在MongoDB中的文档都有一个_id字段,默认类型是ObjectId。它是12字节的值,由MongoDB自动生成,用来唯一标识......
  • package.json中“type“: “module“是什么含义,es6和commonjs的区别以及require和impo
    "type":"module"是Node.js中package.json文件的一个字段,用于指示该项目的模块系统类型。它决定了项目中的.js文件应被视为ECMAScript模块(ESM)还是CommonJS模块(CJS)。含义和作用:"type":"module":项目中的.js文件将默认被视为ECMAScript模块(ESM/ES6)。......
  • IMPRINT:通过学习身份保持表示进行生成对象合成
    IMPRINT:通过学习身份保持表示进行生成对象合成生成对象合成作为合成图像编辑的一种有前景的新途径出现了。然而,对象身份保存的要求带来了重大挑战,限制了大多数现有方法的实际使用。作为回应,介绍了IMPRINT,这是一种基于扩散的生成模型,采用两阶段学习框架进行训练,将身份保持学习与......
  • IpAddressServiceImplTest的一些准备
    AllIpAddressCheckRequest类只有一个属性,ListipAddressList,AllIpAddressCheckResponse类有两个属性,Booleanresult和HashMap<String,Boolean>map,RespUtils定义如下publicclassRespUtils{privatestaticfinalLoggerlog=LoggerFactory.getLogger(RespUtils.class);pr......
  • IpAdressServiceImpl的测试
    importcom.google.common.collect.Maps;importlombok.extern.slf4j.Slf4j;importorg.junit.jupiter.api.BeforeEach;importorg.junit.jupiter.api.Test;importorg.mockito.InjectMocks;importorg.mockito.Mock;importorg.mockito.MockitoAnnotations;importjav......
  • COMP1521 - 24T3 A simple MIPS emulator
    COMP1521-24T3Assignment 2: a simple MIPS emulatorAimsUnderstandingencodingandsemantics of MIPS instructionsPractisingfile operations in CPractisingC, includingbitoperationsUnderstandingUNIXfile system syscallsAssignment OverviewIn......
  • Langchain and Azure cognitive search - ImportError - cannot import name ‘Vector
    题意:LangchainandAzurecognitivesearch-ImportError-cannotimportname'Vector'from'azure.search.documents.models'“Langchain和Azure认知搜索-导入错误:无法从'azure.search.documents.models'导入名称'Vector'”问题背景:Iam......
  • PROG2004 A simple appointment system
     AssessmentBriefPROG2004OBJECTORIENTEDPROGRAMMINGSummaryTitleAssessment1–Programmingtasks-asimpleappointmentsystemforahealthservice TypeProgrammingDueDateMonday11November202411:59pmAEST(StartofWeek3)LengthNAWeighting20%......
  • 大数据新视界 -- 大数据大厂之 Impala 性能提升:高级执行计划优化实战案例(下)(18/30)
           ......
  • MethodImpl优化性能
    参数解释MethodImplOptions.AggressiveInlining:请求编译器在可能的情况下对方法进行内联。MethodImpl:这是一个属性,允许开发者为方法指定特定的实现行为,比如请求内联、忽略栈追踪等。内联的作用内联的主要作用是提升性能,特别是在如下情况下:消除方法调用开销:通常方法调用需要进......