HDU 5443 The Water Problem(水)

本文介绍了一个简单的算法,用于解决寻找给定区间内的最大水源大小的问题。通过读取一系列水源大小并处理多个查询请求,该算法能够高效地找到每个查询区间内的最大水源值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:没有修改,只有询问操作,可以RMQ,线段树等各种方法,当然也可以暴力


#include<bits/stdc++.h>
using namespace std;
const int maxn = 1005;
int a[maxn];
int main()
{
    int T;
	scanf("%d",&T);
	while(T--)
	{
        int n;
		scanf("%d",&n);
		for(int i = 1;i<=n;i++)
			scanf("%d",&a[i]);
		int q;
		scanf("%d",&q);
		while(q--)
		{
			int l,r,ans=-1;
			scanf("%d%d",&l,&r);
			for(int i = l;i<=r;i++)
                ans = max(ans,a[i]);
			printf("%d\n",ans);
		}
	}
}


Description

In Land waterless, water is a very limited resource. People always fight for the biggest source of water. Given a sequence of water sources with  representing the size of the water source. Given a set of queries each containing  integers  and , please find out the biggest water source between  and .

Input

First you are given an integer  indicating the number of test cases. For each test case, there is a number on a line representing the number of water sources.  integers follow, respectively , and each integer is in . On the next line, there is a number  representing the number of queries. After that, there will be  lines with two integers  and  indicating the range of which you should find out the biggest water source.

Output

For each query, output an integer representing the size of the biggest water source.

Sample Input

3
1
100
1
1 1
5
1 2 3 4 5
5
1 2
1 3
2 4
3 4
3 5
3
1 999999 1
4
1 1
1 2
2 3
3 3

Sample Output

100
2
3
4
4
5
1
999999
999999
1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值