最高分数记录
来源:互联网 发布:英克软件怎么样 编辑:程序博客网 时间:2024/05/23 11:48
#include<stdio.h>#include<stdlib.h>#include<iostream>#include<math.h>#include<string.h>#define MaxNum 30010using namespace std;int num[MaxNum];int max(int a, int b) { return a > b ? a : b; }struct SegmentreeNodeTree{int left;int right;int num;int calmid(){return (left + right) / 2;}}treeNode[3 * MaxNum];int build(int left, int right, int idx){treeNode[idx].left = left;treeNode[idx].right = right;treeNode[idx].num = -1;if (left == right)return treeNode[idx].num = num[left];int mid = (left + right) / 2;return treeNode[idx].num = max(build(left, mid, idx << 1),build(mid + 1, right, (idx << 1) + 1));}void update(int id, int x, int idx){if (treeNode[idx].left == treeNode[idx].right){treeNode[idx].num = x;return;}int mid = (treeNode[idx].left + treeNode[idx].right) / 2;if (id <= mid)update(id, x, idx << 1);elseupdate(id, x, (idx << 1) + 1);treeNode[idx].num = max(treeNode[idx << 1].num, treeNode[(idx << 1) + 1].num);}int Query(int left, int right, int idx){if (left == treeNode[idx].left&&right == treeNode[idx].right)return treeNode[idx].num;int mid = (treeNode[idx].left + treeNode[idx].right) / 2;if (right <= mid)return Query(left, right, idx << 1);else if (left > mid)return Query(left, right, idx << 1 | 1);elsereturn max(Query(left, mid, idx << 1), Query(mid + 1, right, idx << 1 | 1));}int main(){//freopen("data.txt", "r", stdin);int stuNums, queryNums;while (cin >> stuNums >> queryNums){for (int i = 1; i <= stuNums; i++)cin >> num[i];build(1, stuNums, 1);while (queryNums--){char type;int num1, num2;cin >> type;cin >> num1 >> num2;if (num2 < stuNums) num2 += 1;if (num1 < stuNums) num1 += 1;switch (type){case 'Q':printf("%d\n", Query(num1, num2, 1));break;case 'U':update(num1, num2, 1);break;}}}return 0;}
0 0
- 最高分数记录
- 最高的分数
- 最高的分数
- 05:最高的分数
- 5. 最高的分数
- sql server 取每一个学生多个科目当中分数最高的记录……
- 分数记录
- 实现最高的分数(c语言)
- 02:输出最高分数的学生姓名
- 02:输出最高分数的学生姓名
- 输出最高分数的学生姓名
- 02:输出最高分数的学生姓名
- 笔记:Java求最高分数的学生成绩。
- 查询每门课分数最高的学生
- 用c#编写程序,输出姓名和最高分数
- sql查询每科成绩最高的人和分数
- 统计全班某们功课期末考试的平均分数和最高分数
- 编写C#程序,输出分数最高的同学的姓名和分数。
- 每天五个java相关面试题(3)
- 完全掌握 Android Data Binding
- 华为荣耀7“耗电门”始末,北研所兄弟们的双年终奖还有吗?
- 九度 Online Judge 算法 刷题 题目1369:字符串的排列
- 左儿子右兄弟Trie UVA 11732 strcmp() Anyone?
- 最高分数记录
- Say Cheese
- hdu 1232 畅通工程(并查集的应用)
- Median of two sorted arrays
- 最大漂亮度
- 1086. Tree Traversals Again (25)
- HDOJ-4324-Triangle LOVE(拓扑排序)
- NoRepeatInteger
- 最小M段和问题