1G.小a的排列(C++)

小a的排列(C++)

點擊做題網站鏈接

題目描述
小a有一個長度為n的排列。定義一段區間是"萌"的,當且僅當把區間中各個數排序后相鄰元素的差為1現在他想知道包含數x,y的長度最小的"萌"區間的左右端點
也就是說,我們需要找到長度最小的區間[l,r],滿足區間[l,r]是"萌"的,且同時包含數x和數y
如果有多個合法的區間,輸出左端點最靠左的方案。

輸入描述:
第一行三個整數N,x,y,分別表示序列長度,詢問的兩個數
第二行有n個整數表示序列內的元素,保證輸入為一個排列

輸出描述:
輸出兩個整數,表示長度最小"萌"區間的左右端點

示例1
輸入

5 2 3
5 2 1 3 4

輸出
2 4

說明
區間[2,4]={2,1,3}包含了2,3且為“萌”區間,可以證明沒有比這更優的方案

示例2
輸入

8 3 5
6 7 1 8 5 2 4 3

輸出
5 8

備注:
保證2?n?105,1?x,y?n2?n?10^5,1?x,y?n2?n?105,1?x,y?n

解題思路:

"萌"的條件就是l - r == max - min(區間長度等于區間內的最大值減最小值)
那么我們先在l到r的區間中求出最大值和最小值,然后再去找這個區間外面的但是值是最小值到最大值范圍中的數
所以我們只需要去模擬這個過程就好了,不斷的找l到r區間外面的數,不斷的更新最大值和最小值。

解題代碼:

#include <iostream>
#include <algorithm>
using namespace std;
int pre[100005];int main()
{ios::sync_with_stdio(0);int n,x,y;//序列長度,詢問的兩個數cin >> n >> x >> y;int l,r;//區間的左右端點for(int i=1;i<=n;++i){cin >> pre[i];if( pre[i]==x ) l = i;//如果輸入的數字和x一樣,用l記錄其位置if( pre[i]==y ) r = i;//如果輸入的數字和y一樣,用r記錄其位置}if( l>r ) swap(l,r);int xx = 0, yy = n+1;while( r-l!=xx-yy )//"萌"的條件就是r-l==max-min(區間長度等于區間內的最大值減最小值){for(int i=l;i<=r;++i)//l到r的區間中求出最大值和最小值{xx = max(xx, pre[i]);//最大值yy = min(yy, pre[i]);//最小值}for(int i=1;i<=n;++i)//再去找這個區間外面的但是值是最小值到最大值范圍中的數{if( pre[i]>yy && pre[i]<xx && i<l ) l = i;if( pre[i]>yy && pre[i]<xx && i>r ) r = i;}}cout << l << " " << r << endl;
}

轉載于:https://www.cnblogs.com/yuzilan/p/10626084.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387408.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387408.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387408.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里云天池 Python訓練營Task3: Python基礎進階:從函數到高級魔法方法 學習筆記

本學習筆記為阿里云天池龍珠計劃Python訓練營的學習內容&#xff0c;學習鏈接為&#xff1a;https://tianchi.aliyun.com/specials/promotion/aicamppython?spm5176.22758685.J_6770933040.1.6f103da1tESyzu 目錄 一、學習知識點概要 二、學習內容 I.函數 1.定義自己的函…

C# 獲取句柄程序

這個小程序需要用到系統API&#xff0c;也就是需要用到user32中的三個函數。 第一個&#xff1a;WindowFromPoint 返回一個窗口句柄 第二個&#xff1a;GetWindowText 獲取窗口標題 第三個&#xff1a;GetClassName 獲取類名 當然&#xff0c;最重要的一點就是要引用命名空間…

HBase安裝配置

HBase的安裝配置&#xff1a; 4臺主機&#xff1a;hdp0 hdp1 hdp2 hdp3 hdp0 hdp1 跑HMaster hdp2 hdp3 跑HRegionServer 將HBase解壓之后 1、確保安裝ZooKeeper&#xff1b; 2、修改hbase-env.sh export JAVA_HOME/.../jdk export HBASE_MANAGES_ZKfalse //使用外部的…

python cook讀書筆記第2章字符串和文本

使用多個界定符分割字符串 line asdf fjdk; afed, fjek,asdf, fooimport re# line re.split(r[;,\s]\s*,line)# print(line)# [asdf, fjdk, afed, fjek, asdf, foo]"""當你使用 re.split() 函數時候&#xff0c;需要特別注意的是正則表達式中是否包含一個括號…

centos7安裝oracle12c 一

本文 基本參考了下面這篇文章http://blog.csdn.net/gq5251/article/details/42004035 和http://www.linuxidc.com/Linux/2017-08/146528.htm 但是改正了一些錯誤操作系統:CentOS Linux release 7.2.1511 (Core) oracle: oarcle (12.1.0.2.0) - Standard Edition (SE2)幾點要注…

Bigtable的些許重點

分布式數據庫系統 針對于海量數據&#xff0c;可擴展&#xff0c;高吞吐量&#xff0c;低時延 不支持關系模型 通過row和column進行索引&#xff0c;row和column可以是任意字符串 所存儲的數據也是字符串 Bigtable是一個map&#xff0c;value是array of bytes&#xff0c;通…

阿里云天池 Python訓練營Task4: Python數據分析:從0完成一個數據分析實戰 學習筆記

本學習筆記為阿里云天池龍珠計劃Python訓練營的學習內容&#xff0c;學習鏈接為&#xff1a;https://tianchi.aliyun.com/specials/promotion/aicamppython?spm5176.22758685.J_6770933040.1.6f103da1tESyzu 一、學習知識點概要 本次主要通過阿里云天池的賽題【Python入門系…

JMETER從JSON響應中提取數據

如果你在這里&#xff0c;可能是因為你需要使用JMeter從Json響應中提取變量。 好消息&#xff01;您正在掌握掌握JMeter Json Extractor的權威指南。作為Rest API測試指南的補充&#xff0c;您將學習掌握Json Path Expressions 所需的一切。 我們走吧&#xff01;并且不要驚慌&…

centos7安裝oracle12c 二

環境&#xff1a;CentOS7VMware12&#xff0c;分配資源&#xff1a;CPU&#xff1a;2顆&#xff0c;內存&#xff1a;4GB&#xff0c;硬盤空間&#xff1a;30GB Oracle 12C企業版64位 下載地址&#xff1a;http://www.oracle.com/technetwork/database/enterprise-edition/down…

阿里云天池 Python訓練營Task5:Python訓練營測試 學習筆記

一、學習知識點概要 本次是Python訓練營的測試&#xff0c;在45分鐘內完成25題&#xff0c;滿分100分及格80分。題目主要考察Task1到Task3里面的Python基礎知識。在我隨到的25道題里&#xff0c;知識點有&#xff1a; 變量&#xff08;包括數據類型和容器類型&#xff09;運算…

centos7安裝oracle12c 三

場景描述&#xff1a;我在自己電腦的虛擬機上linux環境下安裝oracle11g數據庫。 Linux版本為&#xff1a;CentOS release 6.8 (Final)&#xff0c;Oracle版本為&#xff1a;linux.x64_11gR2 問題描述&#xff1a;在oracle安裝到Prerequisite Checks這一步的時候&#xff0c;出現…

mysql刪除一條記錄

mysql如何刪除一條記錄delete from 表名 where 條件實例&#xff1a;use db1delete from tb1 where id 1; 轉載于:https://www.cnblogs.com/effortsing/p/10393229.html

HBase體系結構

HBase HBase是Apache Hadoop的數據庫&#xff0c;基于HDFS文件系統 random,realtime read/write access to Big Data 開源、分布式、可擴展、面向列 larger tables--billions of rows X millions of columns 不支持表鏈接操作 不支持事務處理 HBase存儲的數據從邏輯上來…

《屬性數據分析引論》 部分課后習題R語言實踐(第三章、第四章)

目錄 前言 第三章 廣義線性模型 習題3.18 a小題 b小題 c小題 d小題 習題3.19 a小題 b小題 c小題 第四章 Logistic回歸 習題4.1 a小題 b小題 c小題 d小題 e小題 習題4.2 a小題 b小題 c小題 d小題 小結 前言 習題選自高等教育出版社譯制&#xff0c;Alan A…

Linux下SVN搭建

在Linux系統中搭建svn服務所需要用到的軟件叫做subversion&#xff0c;可以通過yum來進行安裝&#xff0c;如圖 安裝好軟件后第一件事就是創建一個倉庫目錄 [rootserver1 ~]# mkdir /svn 使用svn自帶命令建立倉庫 [rootserver1 ~]# svnadmin create /svn 進入該倉庫&#xff0c…

HBase模式設計

HBase的使用是為了解決或優化某一問題 恰當的設計模式可以使其具有HBase本身所不具有的功能&#xff0c;并且使其執行效率得到成百上千倍的提高 在進行HBase數據庫模式設計的時候&#xff0c;不當的設置可能對系統的性能產生不良的影響 需要注意&#xff1a; 1、列族的數量及…

C++STL特殊容器priority_queue

在了解priority_queue&#xff08;優先隊列&#xff09;前&#xff0c;可以先去瞅瞅queue&#xff0c;下面是傳送門啦>——< 傳送門 priority_queue的基本性能 class priority_queue<>實現出一個queue&#xff0c;只不過其中的元素依照優先級被讀取。priority_queu…

可用于多元正態的參數估計 及 均值向量和協差陣檢驗 的R語言函數總結

一、多元正態的參數估計 1.1 樣本均值 在R語言中&#xff0c;均值通常用函數mean()得到&#xff0c;但是mean()只能計算一維變量的樣本均值&#xff0c;在面對多元隨機變量的樣本時&#xff0c;假設我們以數據框的形式保存樣本&#xff0c;我們有以下方法可以得到樣本均值&…

30秒的PHP代碼片段-MATH

本文來自GitHub開源項目 點我跳轉 30秒的PHP代碼片段 精選的有用PHP片段集合&#xff0c;您可以在30秒或更短的時間內理解這些片段。數學函數 average 返回兩個或多個數字的平均值。 function average(...$items) { $count count($items); return $count 0 ? 0 : array_sum(…

Hive簡介

Hive最初是應Facebook每天產生的海量新興社會網絡數據進行管理和機器學習的需求而產生和發展的 是建立在Hadoop上的數據倉庫基礎架構 作為Hadoop的一個數據倉庫工具&#xff0c;Hive可以將結構化的數據文件映射為一張數據庫表&#xff0c;并提供簡單的SQL查詢功能 Hive作為數…