16 Educational Codeforces Round 142 (Rated for Div. 2)C. Min Max Sort(遞歸、思維、dp)

C. Min Max Sort

很不錯的一道題目,不過腦電波和出題人每對上, q w q 。 qwq。 qwq
正難則反。
我們考慮最后一步是怎么操作的。
最后一步一定是對 1 1 1 n n n進行操作
那么上一步呢?
上一步應該是對 2 2 2 n ? 1 n-1 n?1
以此類推
第一步應該是對 n 2 \frac{n}{2} 2n? n 2 + 1 \frac{n}{2}+1 2n?+1
我們的答案應該是上一步之前的所有操作次數加上最后一步的操作次數。
然后對于 i ∈ [ 1 , n 2 ] i \in [1, \frac{n}{2}] i[1,2n?]并不是所有 i i i都需要進行操作的。
如果本身 i i i n ? i + 1 n-i+1 n?i+1已經是有序的就不需要進行操作了。
如何判斷是不是有序的呢?
這里預處理出來一個 f i f_i fi?表示,以 i i i結尾的最長連續上升序列的長度。
如果 f [ n ? i + 1 ] < n ? i + 1 ? i + 1 f[n-i+1]<n-i+1-i+1 f[n?i+1]<n?i+1?i+1說明這個 i i i n ? i + 1 n-i+1 n?i+1不是有序的則需要進行一次操作


#include <bits/stdc++.h>#define int long long
#define rep(i, a, b) for(int i = (a); i <= (b); ++i)
#define fep(i, a, b) for(int i = (a); i >= (b); --i)
#define _for(i, a, b) for(int i=(a); i<(b); ++i)
#define pii pair<int, int>
#define pdd pair<double,double>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back
#define vi vector<int>using namespace std;
const int maxn = 2e5 + 10;
int n,a[maxn],f[maxn];void solve() {cin>>n;int lst=0;rep(i,1,n){f[i]=0;cin>>a[i];}rep(i,1,n) {f[a[i]]=f[a[i]-1]+1;}int ans=0;fep(i,n/2,1){if(f[n-i+1]<n-i+1-i+1){ans++;}}cout<<ans<<endl;
}signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//	freopen("C:\\Users\\24283\\CLionProjects\\untitled2\\1.in", "r", stdin);int _;cin >> _;while (_--)solve();return 0;
}

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

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

相關文章

AMD“高級洞察”系列揭示Epyc Naples和Rome原型CPU早期無法啟動問題

AMD在其新的YouTube視頻系列《高級洞察》第一集中&#xff0c;由AMD首席技術官Mark Papermaster擔任主持人&#xff0c;討論了AMD在數據中心領域的突破性進展及其持續增長。然而&#xff0c;AMD在服務器業務的發展并非一帆風順&#xff0c;兩位高管公開討論了早期Epyc Naples和…

【Python】環境管理怎么選擇【virtualenv】【pipenv】【 poetry】【 conda】

前言 剛入門Python&#xff0c;看到PyCharm的環境管理選擇有好幾個選擇&#xff0c;分別是virtualenv、pipenv、venv、conda&#xff0c;只知道這些都可以用來管理Python環境的&#xff0c;但不知道這些環境有什么區別&#xff0c;所以&#xff0c;本文將對這些環境管理進行總…

Avalonia學習(二十九)-儀表

Avalonia制作儀表盤&#xff0c;把控件給大家演示一下&#xff0c;Avalonia有三類自定義控件&#xff0c;分別是用戶控件、模版控件、自主控件。前面已經很多用戶控件了&#xff0c;這個是演示模版控件&#xff0c;另外一種不知道哪種情況下使用。 前端代碼&#xff1a; <…

想從事數據方向職場小白看過來, 數據方面的一些英文解釋

想從事數據方向職場小白看過來&#xff0c;一些英文名詞解釋 文章目錄 想從事數據方向職場小白看過來&#xff0c;一些英文名詞解釋 英文類解釋NoSQL&#xff1a;ESB&#xff1a;ACID &#xff1a;Data Vault&#xff1a;MDM&#xff1a;OLAP&#xff1a;SCD:SBA&#xff1a;MP…

【Django】執行查詢——比較、刪除、復制、批量修改對象

以下述模型為基礎&#xff0c;討論檢索對象的方式方法&#xff1a; from datetime import datefrom django.db import modelsclass Blog(models.Model):name models.CharField(max_length100)tagline models.TextField()def __str__(self):return self.nameclass Author(mod…

【vue】v-if、v-show、v-for 相關所有面試題總結

v-if 和 v-show 的區別 兩個重點【dom】和【生命周期】 v-if 惰性指令&#xff0c;false 不會被編譯、渲染不會存在 DOM 中切換開銷大&#xff0c;需要重新創建元素值變化&#xff0c;使用 v-if 的組件生命周期執行順序 true 變為 false【組件的銷毀】 beforeDestroy / befor…

[Flutter]shared_preferences基本用法以及可視化管理存儲的key和value類型

shared_preferences 是一個Flutter插件&#xff0c;它提供了一種簡單的方式來在應用程序中存儲和獲取持久化的鍵值對數據。它可以用于存儲應用程序的配置信息、用戶偏好設置、登錄狀態等。 使用 shared_preferences 插件&#xff0c;你可以在應用程序中輕松地保存和讀取數據&a…

Java中線程相關的知識

創建子線程的三種方式: 1.自定義線程任務類繼承線程類&#xff0c;以便繼承其功能,重寫其run方法(里面寫自己需要實現的功能)&#xff0c;在main方法調用時創建其任務類實例化對象&#xff0c;然后調用對象的start方法(繼承自父類)&#xff0c;即成功創建線程 優點:創建方式簡…

Pandas DataFrame 基本操作實例100個

Pandas 是一個基于NumPy的數據分析模塊&#xff0c;最初由AQR Capital Management于2008年4月開發&#xff0c;并于2009年底開源。Pandas的名稱來源于“Panel Data”&#xff08;面板數據&#xff09;和“Python數據分析”&#xff08;data analysis&#xff09;。這個庫現在由…

來不及了!大學必須完成的四件事!

老師們常說&#xff0c;上大學就輕松了 其實不然 大學不是人生的終點&#xff0c;而是新的起跑線 不是休息站&#xff0c;而是進入社會的最后沖刺跑道 大學生活苦樂參半&#xff0c;成人世界即將來臨 出了校門&#xff0c;你會發現社會復雜多變&#xff0c;需要不斷學習 稍…

excel中如何使用VLOOKUP和EXACT函數實現區分大小寫匹配數據

在 Excel 中&#xff0c;VLOOKUP 函數默認情況下是不區分大小寫的&#xff1a; 比如下面的案例&#xff0c;直接使用VLOOKUP函數搜索&#xff0c;只會搜索匹配到不區分大小寫的第一個 如果我們想要實現區分大小寫的精確匹配&#xff0c;可以使用 EXACT 函數結合 VLOOKUP 函數 …

【簡說八股】Redisson的守護線程是怎么實現的

Redisson Redisson 是一個 Java 語言實現的 Redis SDK 客戶端&#xff0c;在使用分布式鎖時&#xff0c;它就采用了「自動續期」的方案來避免鎖過期&#xff0c;這個守護線程我們一般也把它叫做「看門狗」線程。 Redission是一個在Java環境中使用的開源的分布式緩存和分布式鎖實…

PyTorch-卷積神經網絡

卷積神經網絡 基本結構 首先解釋一下什么是卷積&#xff0c;這個卷積當然不是數學上的卷積&#xff0c;這里的卷積其實表示的是一個三維的權重&#xff0c;這么解釋起來可能不太理解&#xff0c;我們先看看卷積網絡的基本結構。 通過上面的圖我們清楚地了解到卷積網絡和一般網…

【Javascript】設計模式之發布訂閱模式

文章目錄 1、現實中的發布&#xff0d;訂閱模式2、DOM 事件3、簡單的發布-訂閱模式4、通用的發布-訂閱模式5、先發布再訂閱6、小結 發布—訂閱模式又叫觀察者模式&#xff0c;它定義對象間的一種一對多的依賴關系&#xff0c;當一個對象的狀態發生改變時&#xff0c;所有依賴于…

Mysql深入學習 基礎篇 Ss.02 詳解四類SQL語句

我親愛的對手&#xff0c;亦敵亦友&#xff0c;但我同樣希望你能成功&#xff0c;與我一起&#xff0c;站在人生的山頂上 ——24.3.1 一、DDL 數據定義語言 1.DDL —— 數據庫操作 查詢 查詢所有數據庫 show databases; 查詢當前數據庫 select database(); 創建 create databa…

【簡說八股】Nginx、GateWay、Ribbon有什么區別?

前言 在現代的微服務架構中&#xff0c;Nginx、Gateway 和 Ribbon 都是處理網絡請求和服務的組件&#xff0c;但它們各自扮演的角色和提供的功能有所不同。下面我將詳細解釋它們之間的區別&#xff1a; Nginx Nginx 是一個高性能的 HTTP 和反向代理服務器&#xff0c;它也可…

Golang Vs Java:為您的下一個項目選擇正確的工具

Java 首次出現在 1995 年&#xff0c;由 James Gosling 和 Sun Microsystems 的其他人開發的一種新編程語言。從那時起&#xff0c;Java 已成為世界上最受歡迎和廣泛使用的編程語言之一。Java 的主要特點包括其面向對象的設計、健壯性、平臺獨立性、自動內存管理以及廣泛的內置…

MSMFN

CDFI是彩色多普勒血流成像 輔助信息 作者未提供數據

Codeforces Round 930 (Div. 2)

substr時間復雜度O&#xff08;N&#xff09;&#xff0c;不能一遍遍找&#xff0c;會超時 #include<iostream> #include<algorithm> #include<vector> #include<map> using namespace std; const int N5e510; map<string,int>mp; vector<…

[C++]AVL樹怎么轉

AVL樹是啥 一提到AVL樹&#xff0c;腦子里不是旋了&#xff0c;就是懸了。 AVL樹之所以難&#xff0c;并不是因為結構難以理解&#xff0c;而是因為他的旋轉。 AVL樹定義 平衡因子&#xff1a;對于一顆二叉樹&#xff0c;某節點的左右子樹高度之差&#xff0c;就是該節點的…