C1. Powering the Hero (easy version) time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output This is an easy version of the problem. It differs from the hard one only by constraints on n and t . There is a deck of n cards, each of which is characterized by its power. There are two types of cards: a hero card, the power of such a card is always equal to 0 ; a bonus card, the power of such a card is always positive. You can do the following with the deck: take a card from the top of the deck; if this card is a bonus card, you can put it on top of your bonus deck or discard; if this card is a hero card, then the power of the top card from your bonus deck is added to his power (if it is not empty), after that the hero is added to your army, and the used bonus discards. Your task is to use such actions to gather an army with the maximum possible total power. Input The first line of input data contains single integer t (1≤t≤1000 ) — the number of test cases in the test. The first line of each test case contains one integer n (1≤n≤5000 ) — the number of cards in the deck. The second line of each test case contains n integers s1,s2,…,sn (0≤si≤109 ) — card powers in top-down order. It is guaranteed that the sum of n over all test cases does not exceed 5000 . Output Output t numbers, each of which is the answer to the corresponding test case — the maximum possible total power of the army that can be achieved.
时间: 2023-03-25 10:02:31 浏览: 298
这是一道算法题,给定一个卡牌堆,每张卡牌有一个能力值,其中有一种卡牌是英雄卡,能力值为,其余卡牌为奖励卡,能力值为正整数。每次可以从卡牌堆顶取出一张卡牌,如果是奖励卡,则可以将其放入奖励卡堆或者丢弃;如果是英雄卡,则将奖励卡堆顶的卡牌能力值加到英雄卡上,然后将英雄卡加入军队,奖励卡堆中的卡牌被丢弃。要求通过这些操作,使得军队的总能力值最大。
输入数据的第一行为测试用例的数量t,接下来t行每行描述一个测试用例,第一行为卡牌堆的大小n,第二行为n个整数,表示卡牌的能力值。
输出t行,每行为对应测试用例的最大可能总能力值。
解题思路:
可以使用一个栈来模拟奖励卡堆,每次取出一张卡牌,如果是奖励卡,则将其放入栈中,如果是英雄卡,则将栈顶的卡牌能力值加到英雄卡上,然后将英雄卡加入军队,栈顶的卡牌被弹出。这样可以保证每次取出的英雄卡都能够获得最大的奖励卡能力值。
具体实现时,可以使用一个变量sum来记录当前军队的总能力值,一个变量max_bonus来记录奖励卡堆中能力值最大的卡牌,每次取出英雄卡时,将max_bonus加到sum中,然后将max_bonus重置为。这样可以保证每次取出英雄卡时都能够获得最大的奖励卡能力值。
时间复杂度为O(n),空间复杂度为O(n)。
代码实现:
相关问题
powering off display group due to timeout (groupid= 0, uid= 1000)...
"powering off display group due to timeout (groupid= 0, uid= 1000)"是指因为超时而关闭显示组。显示组由特定的用户组和用户ID组成。
当设备处于空闲状态或没有用户操作时,为了节省电量,系统会设定一个时间限制。如果经过一段时间后用户没有进行任何操作,系统会自动关闭显示屏幕。而上述的消息则是指在指定的显示组中,由于超过了设定的时间限制,系统选择关闭了屏幕。
通过自动关闭屏幕,可以有效减少设备耗电,延长电池使用时间。这在手机、平板电脑、笔记本电脑等便携设备中特别有用。
当用户再次操作设备时,系统会重新启动屏幕,恢复正常显示。用户也可以手动唤醒屏幕,只需按下电源键或者通过其他指定的操作即可。
这个操作是系统的默认设置,用户可以根据自己的需求进行调整。可以在设置中找到相关的选项,更改自动关闭屏幕的时间限制,或者禁用此功能,让屏幕一直处于开启状态。但需要注意的是,长时间开启屏幕会消耗更多的电量。所以在实际使用中,根据实际需求进行选择可以获得更好的使用体验。
error while powering on: unable to find the vmx binary ''.
这个错误提示是虚拟机启动时出现的,意思是找不到虚拟机的vmx二进制文件。可能是因为该文件被删除或移动了,或者虚拟机配置文件中的路径不正确。需要检查虚拟机配置文件的路径设置是否正确,并确保vmx文件存在于指定的路径中。如果vmx文件确实不存在,可以尝试重新安装虚拟机或者恢复该文件。
阅读全文