1342: 消灭怪物

1342: 消灭怪物

时间限制: 2 Sec  内存限制: 256 MB

题目描述

有水平放置的编号从1到n的n个格子,每个格子中有一个或者多个怪物。你可以在任何一个格子里投下炸弹,这个格子里的怪物都将受到伤害,当每个怪物第一次受到伤害,它会立即移动到相邻的格子(格子n内的怪物只能移动到格子n-1,格子1内的怪物只能移动到格子2),当一个怪物受到两次伤害时,他将彻底被消灭。怪物只有在第一次受到伤害时才一移动,它们自己不会移动。

你要找出消灭所有怪物所需要的最小炸弹数。

输入

第一行:整数T,表示测试实例个数。

对于每组测试实例:

输入一个整数n (2 ≤ n ≤ 100 000) ——表示有n个格子。

输出

每组测试实例输出一行:包括一个整数——消灭所有怪物所需要的最小炸弹数。

样例输入

2
2
3

样例输出

3
4

这个题有点坑,题意说的不太清楚,全靠猜。。。

先补充一下题目:有水平放置的编号从1到n的n个格子,每个格子中有一个或者多个怪物。你可以在任何一个格子里投下炸弹,这个格子里的怪物都将受到伤害,当每个怪物第一次受到伤害,它会立即移动到相邻的格子(格子第n个格子内的怪物只能移动到格子n-1中,格子1内的怪物只能移动到格子2,例如第3个格子中的怪物只能移到第2个格子中,第4个格子中的怪物只能移到第三个格子中),如果当前格子中有从其他格子跳过来的怪物,则该格子中原本的怪物收到伤害时,不能移动,当一个怪物受到两次伤害时,他将彻底被消灭。怪物只有在第一次受到伤害时才一移动,它们自己不会移动。

代码:

import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
         
        int n = sc.nextInt();
        int a[] = new int[n];
         
        for (int i = 0; i < a.length; i++) {
            int temp = sc.nextInt();
            a[i] = temp/2+temp;
        }
         
        for (int j = 0; j < a.length; j++) {
            System.out.println(a[j]);
        }
    }
}
/**************************************************************
    Problem: 1342
    User: 20161514325
    Language: Java
    Result: 正确
    Time:233 ms
    Memory:13432 kb
****************************************************************/

猜你喜欢

转载自blog.csdn.net/qq_39507723/article/details/83856961