题目 题意:给定长度为 n n n的数组 b b b, a a a, a a a的初始值都为1,每次操作,可以选择数组 a a a的下标i和x,使得 a i = a i + ⌊ a i / x ⌋ a_i=a_i+\lfloor a_i/x \rfloor ai=ai+⌊ai/x⌋。有 k k k操作,当操作后,所有 a i = = b i a_i==b_i ai==bi的下标,可以获得硬币值 c i c_i ci,问最多能得到多少硬币。
思路:预处理1到1000,计算从1到i的需要的最少步骤次数 m n mn mn;对于值, b i b_i bi,其需要的步骤次数为 m n [ b i ] mn[b_i] mn[bi]。问题转化为,给定代价 c o s t i cost_i costi,获取值 c o i n i coin_i coini,容量为 k k k。经典01背包。由于 k < = 1000000 , n < = 1000 k
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?