大家好,今天周末算法专题选的问题是codeforces contest1400中的B题,RPG Protagonist,翻译过来就是RPG游戏当中主人公。看起来这个标题就很唬人,其实这也是codeforces的题目风格。
这道题的链接是:https://codeforces.com/contest/1400/problem/B
按照道理来说div2比赛当中的B题都不难,大概和LeetCode当中的Easy差不多,有时候要简单一些,有时候要难一些。一般来说属于大部分人都能做出来的题。但今天选的这道题有一点意外,它的通过人数比同一场的C题还要少。其实并不是它难,而是这题当中藏着一个思维陷阱,我觉得挺有意思的,所以今天的文章选了它。
题意
codeforces和LeetCode题目很大的不同点在于codeforces当中的许多题目会有一个短的背景故事,而不是很枯燥地直接告诉你这道题是怎样怎样的你去算去吧。所以相比之下会有意思一些,当然在比赛的时候这也很考验选手的读题(英语)水平,你能不能过滤掉这些背景故事的干扰,迅速提炼出题干。
这题的背景故事是说你是一个RPG游戏当中的主人公,你和一个随从一起去铁匠铺买装备。你的目的是买尽可能多的斧子和剑,然后把这些武器融了获得铁锭。你和随从各有一个背包,你背包的容量是p,随从背包的容量是f。其中一把剑占的体积是s,一把战斧(war axe)占的体积是w。铁匠铺里一共有cnts把剑,cntw把斧子。
然后题目规定一把剑和一把斧子融了都可以获得一个铁锭,请问你最多可以获得多少铁锭?
其中 1 ≤ p , f , s , w ≤ 1 0 9 1 \le p, f, s, w \le 10^9 1≤p,f,s,w≤109, 1 ≤ c n t s , c n t w ≤ 2 ∗ 1