HDU 5443 The Water Problem 解题报告(如题)
2015-09-13 22:52
399 查看
The Water Problem
Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 222 Accepted Submission(s): 181
[align=left]Problem Description[/align]
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
a1,a2,a3,...,an
representing the size of the water source. Given a set of queries each containing
2
integers l
and r,
please find out the biggest water source between al
and ar.
[align=left]Input[/align]
First you are given an integer
T(T≤10)
indicating the number of test cases. For each test case, there is a number
n(0≤n≤1000)
on a line representing the number of water sources.
n
integers follow, respectively a1,a2,a3,...,an,
and each integer is in {1,...,106}.
On the next line, there is a number q(0≤q≤1000)
representing the number of queries. After that, there will be
q
lines with two integers l
and r(1≤l≤r≤n)
indicating the range of which you should find out the biggest water source.
[align=left]Output[/align]
For each query, output an integer representing the size of the biggest water source.
[align=left]Sample Input[/align]
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
[align=left]Sample Output[/align]
100
2
3
4
4
5
1
999999
999999
1
[align=left]Source[/align]
2015 ACM/ICPC Asia Regional Changchun Online
解题报告:其实一开始让我写这题的解题报告我是拒绝的。
#include <cmath>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <string>
#include <set>
#include <map>
#include <queue>
#include <vector>
#include <functional>
#include <cassert>
#include <bitset>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define ff(i, n) for(int i=0,END=(n);i<END;i++)
#define fff(i, n, m) for(int i=(n),END=(m);i<=END;i++)
#define dff(i, n, m) for(int i=(n),END=(m);i>=END;i--)
#define travel(e, u) for(int e=first[u], v=vv[first[u]]; ~e; e=nxt[e])
#define mid ((l+r)/2)
#define bit(n) (1ll<<(n))
#define clr(a, b) memset(a, b, sizeof(a))
#define debug(x) cout << #x << " = " << x << endl;
#define ls (rt << 1)
#define rs (ls | 1)
#define lson l, m, ls
#define rson m + 1, r, rs
void work();
int main() {
work();
return 0;
}
/**************************Beautiful GEGE**********************************/
int a[1111];
void work() {
int T; scanf("%d", &T);
fff(cas, 1, T) {
int n; scanf("%d", &n);
ff(i, n) scanf("%d", a + i);
int q; scanf("%d", &q);
ff(i, q) {
int l, r; scanf("%d%d", &l, &r);
printf("%d\n", *max_element(a + l - 1, a + r));
}
}
}
相关文章推荐
- searchRange
- MySQL 事件跟踪器 , MySQL 无须重启服务 跟踪 SQL , 也无须配置日志
- 听闫老师讲“换个角度看‘面向对象’”
- 滴滴打车:天价补贴背后的惊人秘密
- Linux 基本命令学习
- ThinkPHP使用Smarty
- 汇文毕业项目--好多鱼
- Android视频播放器---播放远程非流MP4
- java I/0流与异常
- 一些arcgis符号库干货
- 素数的线性筛选
- HDOJ 2404 Permutation Recovery (逆序列)
- [LeetCode]Gray Code
- 《剑指offer》对称的二叉树
- @Component、@Service、@Constroller
- 表单操作
- Neutron 理解 (4): Neutron OVS OpenFlow 流表 和 L2 Population [Netruon OVS OpenFlow tables + L2 Populatio
- Android核心基础-9.Android四大组件之BroadcastReceiver
- 树莓派重新启动和复位的方法
- 安装LuaSocket