第八大奇迹

2024-05-28 07:20
文章标签 奇迹 第八

本文主要是介绍第八大奇迹,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

题目描述

输入描述

输出描述

输入输出样例

示例

输入

输出

运行限制

原题链接

代码思路


题目描述

在一条 R 河流域,繁衍着一个古老的名族 Z。他们世代沿河而居,也在河边发展出了璀璨的文明。

Z 族在 R 河沿岸修建了很多建筑,最近,他们热衷攀比起来。他们总是在比谁的建筑建得最奇特。

幸好 Z 族人对奇特的理解都差不多,他们很快给每栋建筑都打了分,这样评选谁最奇特就轻而易举了。

于是,根据分值,大家很快评出了最奇特的建筑,称为大奇迹。

后来他们又陆续评选了第二奇特、第二奇特、......、第七奇特的建筑,依次称为第二大奇迹、第三大奇迹、......、第七大奇迹。

最近,他们开始评选第八奇特的建筑,准备命名为第八大奇迹。

在评选中,他们遇到了一些问题。

首先,Z 族一直在发展,有的建筑被拆除又建了新的建筑,新建筑的奇特值和原建筑不一样,这使得评选不那么容易了。

其次,Z 族的每个人所生活的范围可能不一样,他们见过的建筑并不是所有的建筑,他们坚持他们自己所看到的第八奇特的建筑就是第八大奇迹。

Z 族首领最近很头疼这个问题,他害怕因为意见不一致导致 Z 族发生分歧。他找到你,他想先了解一下,民众自己认为的奇迹是怎样的。

现在告诉在 R 河周边的建筑的变化情况,以及在变化过程中一些人的生活范围,请编程求出每个人认为的第八大奇迹的奇特值是多少。

输入描述

输入的第一行包含两个整数 𝐿,𝑁L,N,分别表示河流的长度和要你处理的信息的数量。开始时河流沿岸没有建筑,或者说所有的奇特值为 0。

接下来 𝑁N 行,每行一条你要处理的信息。

如果信息为 𝐶 𝑝 𝑥C p x,表示流域中第 𝑝 (1≤𝑝≤𝐿)p (1≤p≤L) 个位置建立了一个建筑,其奇特值为 𝑥x。如果这个位置原来有建筑,原来的建筑会被拆除。

如果信息为 𝑄 𝑎 𝑏Q a b,表示有个人生活的范围是河流的第 𝑎a 到 𝑏b 个位置(包含 𝑎a 和 𝑏b,𝑎≤𝑏a≤b),这时你要算出这个区间的第八大奇迹的奇特值,并输出。如果找不到第八大奇迹,输出 0。

其中,1≤𝐿≤105,1≤𝑁≤1051≤L≤105,1≤N≤105。所有奇特值为 不超过 109109 的非负整数。

输出描述

对于每个为 Q 的信息,你需要输出一个整数,表示区间中第八大奇迹的奇特值。

输入输出样例

示例

输入
10 15
C 1 10
C 2 20
C 3 30
C 4 40
C 5 50
C 6 60
C 7 70
C 8 80
C 9 90
C 10 100
Q 1 2
Q 1 10
Q 1 8
C 10 1
Q 1 10
输出
0
30
10
20

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

原题链接

第八大奇迹icon-default.png?t=N7T8https://www.lanqiao.cn/problems/242/learning/?page=1&first_category_id=1&name=%E7%AC%AC%E5%85%AB%E5%A4%A7%E5%A5%87%E8%BF%B9

代码思路

import java.util.Scanner;public class Main {static Tree[] trees;public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int L = scanner.nextInt();int N = scanner.nextInt();// 注意线段树的长度要是存入长度(L)的四倍;trees = new Tree[L << 2];// 构建线段树structure(1, 1, L);while (N-- > 0) {String temp1 = scanner.next();int temp2 = scanner.nextInt();int temp3 = scanner.nextInt();if (temp1.equals("C")) {renew(1, temp2, temp3);} else {System.out.println(query(1, temp2, temp3)[7]);}}}// 构建线段树static void structure(int k, int left, int right) {trees[k] = new Tree(left, right);if (left == right) {return;}int mid = (left + right) >> 1;structure(k << 1, left, mid);structure(k << 1 | 1, mid + 1, right);}// 修改线段树里的数组static int[] modify(int num1[], int num2[]) {int num3[] = new int[8];int a = 0;int b = 0;for (int i = 0; i < num3.length; i++) {// 从两个子节点的数组中赋较大的值给父节点if (num1[a] > num2[b]) {num3[i] = num1[a++];} else {num3[i] = num2[b++];}}return num3;}// 更新线段树static void renew(int k, int i, int value) {if (trees[k].left == trees[k].right) {trees[k].num[0] = value;return;}int mid = (trees[k].left + trees[k].right) >> 1;if (mid >= i) {renew(k << 1, i, value);} else {renew(k << 1 | 1, i, value);}// 更新父亲节点的数组trees[k].num = modify(trees[k << 1].num, trees[k << 1 | 1].num);}// 查询线段树static int[] query(int k, int left, int right) {if (trees[k].left >= left && trees[k].right <= right) {return trees[k].num;}int mid = (trees[k].left + trees[k].right) >> 1;int num[] = new int[8];if (mid >= left) {num = modify(num, query(k << 1, left, right));}if (mid < right) {num = modify(num, query(k << 1 | 1, left, right));}return num;}}class Tree {int left;int right;// 每个节点存一个数组int num[] = new int[8];public Tree(int left, int right) {super();this.left = left;this.right = right;}}

这篇关于第八大奇迹的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1009904

相关文章

秋招突击——第八弹——Redis是怎么运作的

文章目录 引言正文Redis在内存中是怎么存储的面试重点 Redis是单线程还是多线程面试重点 内存满了怎么办?面试重点 持久化介绍面试重点 RDB持久化面试重点 AOF日志面试重点 总结 引言 差不多花了两天把redis给过了,早上也只背了一半,完成回去的时候,在背一会,还有健身的时候在听一会。加油,完成不要睡太晚了,早上起不了,还容易做噩梦。 正文 Redis在内

奇迹MU服务器租用一个月需要多少钱?

在网络游戏产业迅猛发展的今天,越来越多的人参与到各种各样的网络游戏当中。其中,《奇迹MU》作为一款经典的多人在线角色扮演游戏,吸引了大量玩家的关注与热爱。为了保证游戏的流畅运行和玩家体验,租用高性能的服务器至关重要。 《奇迹MU》运行所需的服务器环境需求较高,尤其是当玩家人数众多、游戏场景复杂时,更加需要高性能的服务器支持。服务器租用成本因以下几个因素而异: 1、硬件配置:包括CPU、

重生奇迹MU 探秘奇幻世界

"探秘奇幻世界,成就无尽荣耀!欢迎来到重生奇迹MU,一个永不落幕的游戏乐园。在这里,你可以尽情挑战各种困难,发掘神秘宝藏,还可与来自世界各地的玩家一起创造无尽的历史。为了帮助你更好地探索游戏世界并提高战斗力,我们为你准备了一份详细的攻略指南。 职业选择 在游戏中,你的角色之旅将从一个重要的选择开始。游戏中拥有众多职业可供选择,每个职业都具有独特的特点和挑战。你可以选择成为无畏的战士,挥舞利刃,

LAMP兄弟连光盘11.11。11节再创光盘低价奇迹

非常感谢一直以来大家对兄弟连的支持和关注,为更好的为大家创造一个更好、更安全、更稳定的学习环境,LAMP兄弟连论坛于11月2日对进行了升级!庆祝这次论坛升级成功,特举行下面活动: 活动  《LAMP兄弟连原创视频教程光盘》大优惠 活动时间:2011年11月03日 09:00 - 2011年11月11日 23:59) 活动规则:期间购买光盘价格

Gotchi 战士们准备好吧!稀有度挖矿第八季锦标赛即将开始!

我们很高兴地宣布稀有度挖矿第 8 赛季的比赛即将开始,比赛将设立 15 万 GHST 的巨额奖金池,同时还将进行新的更新,让您有更多的方式来制定战略并与您的小鬼好友们一较高下。 本赛季引入了双败淘汰赛,每支队伍可以有两名替补队员,每轮比赛之间还有一个准备阶段用于战略调整。无论您是身经百战的老手还是初出茅庐的新手,本赛季都将为您提供一个完美的舞台,让您尽情展示自己的技能,并从史诗般

重生奇迹mu圣导师介绍

出生地:勇者大陆 性 别:男 擅 长:统率&宠物使用 转 职:祭师(3转) 介 绍:当玩家账号中有一个Lv250以上角色时,便可以创建职业为圣导师的新角色,圣导师每升一级获得能力点数为7(其他角色除魔剑士外均为5点)。 圣导师有着全新的“统率”属性,天生就是一个领导性的职业。和一般职业相比,圣导师拥有更强大的统率战盟的能力,主要体现就是,圣导师组建的战盟拥有更高的人数上限。圣导师有着自己

重生奇迹MU圣导师简介

出生地:勇者大陆 性 别:男 擅 长:统率&宠物使用 转 职:祭师(3转) 介 绍:当玩家账号中有一个Lv250以上角色时,便可以创建职业为圣导师的新角色,圣导师每升一级获得能力点数为7(其他角色除魔剑士外均为5点)。 圣导师有着全新的“统率”属性,天生就是一个领导性的职业。和一般职业相比,圣导师拥有更强大的统率战盟的能力,主要体现就是,圣导师组建的战盟拥有更高的人数上限。圣导师有着自己

德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第八周) - 现代大语言模型

现代大语言模型 1. GPT-32. 上下文学习 2.1. 零样本提示2.2. 少样本提示2.3. 归纳头 3. 对齐 3.1. 指令微调3.2. 基于人类反馈的强化学习3.3. 事实与幻觉 1. GPT-3 GPT系列论文 GPT-1(2018): Improving Language Understanding by Generative Pre-TrainingGPT-2(20

2011蓝桥杯第八题

这道题很容易理解,就是将数字从1开始逐渐递增不断填充到上三角形中,而且是按顺时针旋转方向进行填充,实际上就是一道模拟题,或者说是搜索题,对于当前的每一个位置,下一步都有且只有两种选择,当两种选择都无法满足时也就说明上三角形已经被填满。具体的分析过程在我的代码中会有详细的说明,下面是代码: #include <stdio.h>#include <stdlib.h>#define Max 2

重生奇迹mu魔剑士简介

出生地:勇者大陆 性 别:男 擅 长:近距离作战、武器特技&攻击魔法使用 转 职:剑圣(3转) 介 绍:当玩家账号中有一个220级以上的角色时,便可以创建职业为魔剑士的新角色,魔剑士每升一级获得能力点数为7(其他角色为5点)。比其他人物身材更大,可以使用剑士和魔法师能使用的所有技能(除了瞬间移动)和物品。