CF1418C.Mortal Kombat Tower
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You and your friend are playing the game Mortal Kombat XI. You are trying to pass a challenge tower. There are n bosses in this tower, numbered from 1 to n. The type of the i-th boss is ai. If the i-th boss is easy then its type is ai=0, otherwise this boss is hard and its type is ai=1.
During one session, either you or your friend can kill one or two bosses (neither you nor your friend can skip the session, so the minimum number of bosses killed during one session is at least one). After your friend session, your session begins, then again your friend session begins, your session begins, and so on. The first session is your friend's session.
Your friend needs to get good because he can't actually kill hard bosses. To kill them, he uses skip points. One skip point can be used to kill one hard boss.
Your task is to find the minimum number of skip points your friend needs to use so you and your friend kill all n bosses in the given order.
For example: suppose n=8, a=[1,0,1,1,0,1,1,1]. Then the best course of action is the following:
- your friend kills two first bosses, using one skip point for the first boss;
- you kill the third and the fourth bosses;
- your friend kills the fifth boss;
- you kill the sixth and the seventh bosses;
- your friend kills the last boss, using one skip point, so the tower is completed using two skip points.
You have to answer t independent test cases.
你和你的朋友正在玩《真人快打11》(Mortal Kombat XI)。你们正尝试通关一座挑战塔。这座塔中有 n 个首领,编号从 1 到 n。第 i 个首领的类型为 ai:若第 i 个首领是简单首领,则其类型为 ai=0;否则该首领为困难首领,其类型为 ai=1。
在每一轮中,你或你的朋友可击杀 1 个或 2 个 首领(即任何人都不能跳过自己的回合,因此每轮至少击杀 1 个首领)。在你朋友的回合结束后,进入你的回合;之后再次是你朋友的回合,接着是你的回合,依此类推。第一轮是你朋友的回合。
你的朋友尚需磨练技术,因为他无法实际击杀困难首领。为了击杀困难首领,他必须消耗“跳过点数”(skip points):1 点跳过点数可击杀 1 个困难首领。
你的任务是:求出你和你的朋友按给定顺序击杀全部 n 个首领时,你的朋友所需的最少跳过点数。
例如:设 n=8,a=[1,0,1,1,0,1,1,1]。此时最优策略如下:
- 你朋友击杀前两个首领,并为第一个首领消耗 1 点跳过点数;
- 你击杀第三个和第四个首领;
- 你朋友击杀第五个首领;
- 你击杀第六个和第七个首领;
- 你朋友击杀最后一个首领,并为此消耗 1 点跳过点数;
因此整座塔共需消耗 2 点跳过点数。
你需要回答 t 个相互独立的测试用例。
输入格式
The first line of the input contains one integer t (1≤t≤2⋅104) — the number of test cases. Then t test cases follow.
The first line of the test case contains one integer n (1≤n≤2⋅105) — the number of bosses. The second line of the test case contains n integers a1,a2,…,an (0≤ai≤1), where ai is the type of the i-th boss.
It is guaranteed that the sum of n does not exceed 2⋅105 (∑n≤2⋅105).
输入的第一行包含一个整数 t(1≤t≤2⋅104),表示测试用例的数量。随后是 t 个测试用例。
每个测试用例的第一行包含一个整数 n(1≤n≤2⋅105),表示 Boss 的数量。每个测试用例的第二行包含 n 个整数 a1,a2,…,an(0≤ai≤1),其中 ai 表示第 i 个 Boss 的类型。
保证所有测试用例中 n 的总和不超过 2⋅105(即 ∑n≤2⋅105)。
输出格式
For each test case, print the answer: the minimum number of skip points your friend needs to use so you and your friend kill all n bosses in the given order.
对于每个测试用例,输出答案:你的朋友需要使用的最小跳过点数,使得你和你的朋友能够按给定顺序击杀全部 n 个 Boss。
输入输出样例
输入#1
6 8 1 0 1 1 0 1 1 1 5 1 1 1 1 0 7 1 1 1 1 0 0 1 6 1 1 1 1 1 1 1 1 1 0
输出#1
2 2 2 2 1 0
输入解题思路,AI测评打分。不知道怎么写?