CF1738A.Glory Addicts
入门
通过率:0%
时间限制:2.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
The hero is addicted to glory, and is fighting against a monster.
The hero has n skills. The i-th skill is of type ai (either fire or frost) and has initial damage bi.
The hero can perform all of the n skills in any order (with each skill performed exactly once). When performing each skill, the hero can play a magic as follows:
- If the current skill immediately follows another skill of a different type, then its damage is doubled.
In other words,
- If a skill of type fire and with initial damage c is performed immediately after a skill of type fire, then it will deal c damage;
- If a skill of type fire and with initial damage c is performed immediately after a skill of type frost, then it will deal 2c damage;
- If a skill of type frost and with initial damage c is performed immediately after a skill of type fire, then it will deal 2c damage;
- If a skill of type frost and with initial damage c is performed immediately after a skill of type frost , then it will deal c damage.
Your task is to find the maximum damage the hero can deal.
英雄沉溺于荣耀,正与一只怪物战斗。
英雄拥有 n 个技能。第 i 个技能的类型为 ai(火系或冰系),初始伤害值为 bi。
英雄可以以任意顺序施展全部 n 个技能(每个技能恰好施展一次)。每次施展一个技能时,英雄可施放如下魔法:
- 若当前技能紧接在另一个不同类型的技能之后施展,则其伤害值翻倍。
换言之:
- 若一个火系技能(初始伤害为 c)紧接在另一个火系技能之后施展,则造成 c 点伤害;
- 若一个火系技能(初始伤害为 c)紧接在另一个冰系技能之后施展,则造成 2c 点伤害;
- 若一个冰系技能(初始伤害为 c)紧接在另一个火系技能之后施展,则造成 2c 点伤害;
- 若一个冰系技能(初始伤害为 c)紧接在另一个冰系技能之后施展,则造成 c 点伤害。
你的任务是求出英雄所能造成的最大总伤害值。
输入格式
Each test contains multiple test cases. The first line contains an integer t (1≤t≤105) — the number of test cases. The following lines contain the description of each test case.
The first line of each test case contains an integer n (1≤n≤105), indicating the number of skills.
The second line of each test case contains n integers a1,a2,…,an (0≤ai≤1), where ai indicates the type of the i-th skill. Specifically, the i-th skill is of type fire if ai=0, and of type frost if ai=1.
The third line of each test case contains n integers b1,b2,…,bn (1≤bi≤109), where bi indicates the initial damage of the i-th skill.
It is guaranteed that the sum of n over all test cases does not exceed 105.
每个测试包含多个测试用例。第一行包含一个整数 t(1≤t≤105),表示测试用例的数量。接下来的若干行描述每个测试用例。
每个测试用例的第一行包含一个整数 n(1≤n≤105),表示技能的数量。
每个测试用例的第二行包含 n 个整数 a1,a2,…,an(0≤ai≤1),其中 ai 表示第 i 个技能的类型:若 ai=0,则该技能为火焰系;若 ai=1,则该技能为寒冰系。
每个测试用例的第三行包含 n 个整数 b1,b2,…,bn(1≤bi≤109),其中 bi 表示第 i 个技能的初始伤害值。
保证所有测试用例中 n 的总和不超过 105。
输出格式
For each test case, output the maximum damage the hero can deal.
对于每个测试用例,输出英雄所能造成的最大伤害。
输入输出样例
输入#1
4 4 0 1 1 1 1 10 100 1000 6 0 0 0 1 1 1 3 4 5 6 7 8 3 1 1 1 1000000000 1000000000 1000000000 1 1 1
输出#1
2112 63 3000000000 1
说明/提示
In the first test case, we can order the skills by [3,1,4,2], and the total damage is 100+2×1+2×1000+10=2112.
In the second test case, we can order the skills by [1,4,2,5,3,6], and the total damage is 3+2×6+2×4+2×7+2×5+2×8=63.
In the third test case, we can order the skills by [1,2,3], and the total damage is 1000000000+1000000000+1000000000=3000000000.
In the fourth test case, there is only one skill with initial damage 1, so the total damage is 1.
在第一个测试用例中,我们可以将技能按 [3,1,4,2] 的顺序排列,总伤害为 100+2×1+2×1000+10=2112。
在第二个测试用例中,我们可以将技能按 [1,4,2,5,3,6] 的顺序排列,总伤害为 3+2×6+2×4+2×7+2×5+2×8=63。
在第三个测试用例中,我们可以将技能按 [1,2,3] 的顺序排列,总伤害为 1000000000+1000000000+1000000000=3000000000。
在第四个测试用例中,仅有一个初始伤害为 1 的技能,因此总伤害为 1。
输入解题思路,AI测评打分。不知道怎么写?