以下是题目内容,请大佬给出可以AC的C++代码和思路。如果这题跟洛谷哪道题相似,也麻烦提供一下题号。(有偿咨询50元RMB)
题目:闯关游戏
【问题描述】 小杨在玩闯关游戏。闯关游戏有以下流程和要求:
在这个游戏中,有n扇门,每扇门有一个怪物守着,想要通过就要承受怪物的攻击。
怪物有两种攻击方式,分别为物理攻击和魔法攻击。
怪物的每个物理攻击会扣掉李华1个游戏点数;而魔法攻击的伤害由你所承受的魔法攻击点数决定,如果你全程共承受x个魔法攻击,则每个魔法攻击会扣掉你x^3个游戏点数。
每扇门的怪物只会使用其中一种攻击方式,而且数量上都有各自不同的要求,你可以选择承受哪种攻击方式。
成功通过n扇门,就能完成通关。 小天才的游戏点数有限,希望能够花尽量少的游戏点数来成功闯关。
【输入格式】 第一行一个非负整数n,表示门的数量。 接下来n行,每行两个整数,空格隔开,表示每个怪物的魔法攻击和物理攻击的数量。
【输出格式】 一个整数,表示小杨最少需要攒够多少游戏点数才能闯关成功。
【样例输入】
3
3 1000
2 5000
4 8000
【样例输出】 2296
【样例解释】 第1扇门选择1000个物理攻击,第2扇门承受2个魔法攻击,第3扇门承受4个魔法攻击。总共承受了1000个物理攻击和6个魔法攻击,每个物理攻击需要1个游戏点数,每个魔法攻击需要63=216个游戏点数,共需要1000+6*216=2296个游戏点数。这是小天才闯关成功需要的最少游戏点数。
【数据范围】 对于30%的数据,n≤10; 对于50%的数据,n≤25; 对于100%的数据,n≤50,每个怪物要求的魔法攻击数量≤10,每个怪物要求的物理攻击≤10^7。