hdu4539 炮兵阵地
时间: 2024-02-10 21:20:21 浏览: 29
题目描述:
有一个矩阵,其中有些位置有炮兵,有些位置没有。炮兵可以炮击某个方向上的所有敌人,但是每个炮兵只能炮击一个方向。求最多能消灭多少敌人。
输入:
输入数据的第一行是两个正整数,表示矩阵的行数和列数,中间用空格隔开。接下来的每一行是一个字符串,表示矩阵中的一行。其中,字符“Y”表示该位置有炮兵,“.”表示该位置没有炮兵。
输出:
输出一个整数,表示最多能消灭的敌人数。
样例输入:
5 5
..Y..
Y....
..Y..
.....
Y....
样例输出:
7
算法分析:
本题可以使用暴力枚举的方法,枚举每个炮兵能够炮击的方向,统计每个方向上的敌人数,最后取最大值即可。
时间复杂度为O(n^3)。
代码实现:
相关问题
java HDU2020
题目描述:输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。
以下是Java HDU2020的代码实现:
```java
import java.util.Scanner;
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
Integer[] a = new Integer[n];
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
Arrays.sort(a, new Comparator<Integer>() {
public int compare(Integer o1, Integer o2) {
return Math.abs(o2) - Math.abs(o1);
}
});
for (int i = 0; i < n - 1; i++) {
System.out.print(a[i] + " ");
}
System.out.println(a[n - 1]);
}
sc.close();
}
}
```
hdu1969 java
好的,我明白了。针对你的问题,我猜测你是在问如何使用Java解决hdu1969这道题目。如果我的猜测正确,那么我可以给你一些思路和代码实现。
首先,我们需要明确题目的意思。题目要求我们求出一个多边形的面积,这个多边形由若干个点组成。我们可以使用海龙公式来计算多边形的面积,具体实现如下:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
while (n-- > 0) {
int m = scanner.nextInt();
double x1 = scanner.nextDouble();
double y1 = scanner.nextDouble();
double x2 = scanner.nextDouble();
double y2 = scanner.nextDouble();
double x3 = scanner.nextDouble();
double y3 = scanner.nextDouble();
double a = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
double b = Math.sqrt((x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3));
double c = Math.sqrt((x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3));
double p = (a + b + c) / 2;
double s = Math.sqrt(p * (p - a) * (p - b) * (p - c));
System.out.printf("%.2f\n", s);
}
}
}
```
以上代码实现了对hdu1969题目的求解,你可以将其复制到你的Java IDE中进行编译和运行。