JAVA蓝桥杯 大学里的树木要维护

题目描述
教室外有 NN 棵树(树的编号从 1∼N),根据不同的位置和树种,学校已经对其进行了多年的维护。
因为树的排列成线性,且非常长,我们可以将它们看作一条直线给他们编号。
由于已经维护了多年,每一个树都由学校的园艺人员进行了维护费用的统计。
每棵树的前期维护费用各不相同,但是由于未来需要要打药,所以有些树木的维护费用太高的话,就要重新种植。
由于维护费用也称区间分布,所以常常需要统一个区间里的树木的维护开销。
现给定一个长度为 N 的数组 A 以及 M 个查询,Ai 表示第 i棵树到维护费用。对于每个查询包含一个区间,园艺人员想知道该区间内的树木维护的开销是多少。
请你编写程序帮帮他!
我的答案:(测试通过)

import java.util.*;
public class Main {
	static int a[] = new int[100005];
	static int sum[] = new int[100005];
	static Vector<Integer> vec = new Vector<Integer>();
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n =sc.nextInt();
		int m = sc.nextInt();
		for(int i = 1;i<=n;i++) {
			a[i]=sc.nextInt();
			sum[i]=sum[i-1]+a[i];
		}
		while(m>0) {
			m--;
			int l=sc.nextInt();
			int r=sc.nextInt();
			vec.addElement(sum[r]-sum[l-1]);
		}
		for(int i =0;i<vec.size();i++) {
			System.out.println(vec.get(i));
		}
	}
}

测试结果:
在这里插入图片描述

注意:如果一个int的数组没有赋值进去,那么默认值为0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值