20250808組題總結

A - A

Pak Chanek 有一個包含 nnn 個正整數的數組aaa。由于他正在學習如何計算兩個數字的向下取整平均值,他希望在他的數組 aaa 上進行練習。當數組 aaa 至少有兩個元素時,Pak Chanek 將執行以下三步操作:

?\bullet?選擇兩個不同的索引 iiij(1≤i,j≤∣a∣;i≠j)j (1≤i,j≤∣a∣; i≠j)j(1i,j≤∣a;i=j),注意 ∣a∣∣a∣a 表示數組 aaa 的當前大小。

?\bullet??2ai?+aj2??\frac{2a_i? +a_j}{2}??22ai??+aj???? 附加到數組的末尾。

?\bullet?從數組中移除元素 aia_iai?aja_jaj?并連接數組的剩余部分。

例如,假設 a=[5,4,3,2,1,1]a=[5,4,3,2,1,1]a=[5,4,3,2,1,1] 。如果我們選擇 i=1i=1i=1j=5j=5j=5 ,則結果數組將是 a=[4,3,2,1,3]a=[4,3,2,1,3]a=[4,3,2,1,3] 。如果我們選擇 i=4i=4i=4j=3j=3j=3 ,則結果數組將是 a=[5,4,1,1,2]a=[5,4,1,1,2]a=[5,4,1,1,2]

在所有操作完成后,數組將只包含一個元素 xxx。如果 Pak Chanek 進行最佳操作,找出 xxx 的最大可能值。


? ?x??x??x? 表示 xxx 的向下取整函數,即小于或等于 xxx 的最大整數。例如,?6?=6、?2.5?=2、??3.6?=?4?6?=6、?2.5?=2、??3.6?=?4?6?=6?2.5?=2??3.6?=?4?π?=3?π?=3?π?=3


找規律,可以通過打表發現,只要每次把兩個最小的元素合并起來,就能使最終的答案最大化

那怎么找到最小的兩個值呢?怎么把合并的值放到末尾呢?怎么刪除選中的兩個值呢?這里我們可以偷個懶,因為要合并n?1n-1n?1次,我們就循壞n?1n-1n?1次,每次先把aaa數組排一遍升序,我們就鎖定了兩個最小值

現在是最關鍵的時刻,雖然題目說每次會把合并之后的結果放在數組的末尾,但下一次循環我們還是會排序,所以先把它放在a[1]a[1]a[1],由于每次操作aaa數組的最后一項都會躥到前面去,所以我們就先把它放在a[2]a[2]a[2]

這樣我們就完美的刪除了選中的兩個數,并保留了aaa數組的其余項和選中的兩個數合并之后的結果。

#include<bits/stdc++.h>//獻上代碼
using namespace std;
int a[55],t,n; //數據水是我時間復雜度的證明,O(n log n)
int main(){cin>>t;while(t--){cin>>n;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<n;i++){sort(a+1,a+1+n-i+1); //注意,我們在a數組里刪除了值a[1]=(a[1]+a[2])/2,a[2]=a[n];}cout<<a[1]<<endl;//最后a數組只剩1個值了,于是輸出a[1]}return 0;
} 

B - B

給定一個由互不相同的整數組成的數組aaa。每次操作中,你可以選擇:

?\bullet?選取數組的某個非空前綴???,并將其替換為該前綴的最小值;
?\bullet?選取數組的某個非空后綴?\dagger?,并將其替換為該后綴的最大值。

注意:你可以選擇整個數組aaa作為操作對象。

對于每個元素ai?a_i?ai??,判斷是否存在一系列操作能將數組aaa轉化為aia_iai?——即最終數組aaa僅包含該元素aia_iai?

請輸出一個長度為nnn的二進制字符串,其中第iii個字符為111表示存在這樣的操作序列,否則為000


???數組的前綴是指由前kkk個元素組成的子數組(kkk為任意整數)。
?\dagger?數組的后綴是指由后kkk個元素組成的子數組(kkk為任意整數)。


首先我們可以證明如果一個數是某個前綴最小值,或是某個后綴最大值,就一定可以保留下來。

因為如果這個數是某個前綴的最小值,就可以先進行一次前綴操作,后面不管是什么數就都能經過幾次后綴操作壓縮成一個數,最后再進行一次前綴或后綴操作就能保留該數。

例如,a=a=a={5,6,3,1,75,6,3,1,75,6,3,1,7},此時我們想要判斷a3a_3a3?能不能保留下來,就先判斷它是不是某個前綴的最小值,結果是的,就先進行一次前綴操作,a=a=a={3,1,73,1,73,1,7},接著進行一次后綴操作,a=a=a={3,73,73,7},最后再進行一次前綴操作,a3a_3a3?就保留了下來。

注意,最后一次操作要根據情況判斷是進行前綴操作還是進行后綴操作。

C - C

Nene 發明了一種基于遞增整數序列 a1?,a2?,…,aka_1?,a_2? ,…,a_ka1??,a2??,,ak? 的新游戲。

在這個游戲中,最初有 nnn 名玩家排成一行。在每一輪游戲中,發生以下情況:

Nene 找到第 a1?、a2?、…a_1? 、a _2? 、…a1??a2??aka_kak?名玩家,他們會同時被踢出游戲。如果第 iii 名玩家應該被踢出,但排成一行的玩家少于 iii 名,則跳過該玩家。

一旦在某一輪中沒有人被踢出游戲,所有仍在游戲中的玩家將被宣布為勝利者。

例如,考慮有a=[3,5]a=[3,5]a=[3,5]n=5n=5n=5 名玩家的游戲。假設玩家按順序被命名為玩家 A、玩家 B、
…、玩家 E。

那么,在第一輪之前,玩家排成 ABCDE。Nene 找到第 333 和第 555 名玩家。這些是玩家 C 和 E。他們在第一輪被踢出。現在玩家排成 ABD。

Nene 找到第 333 和第 555 名玩家。第 333 名玩家是玩家 D,而排成一行中沒有第 555 名玩家。因此,只有玩家 D 在第二輪被踢出。

在第三輪中,沒有人被踢出游戲,因此游戲在這一輪結束。玩家 A 和 B 被宣布為勝利者。

Nene 尚未決定最初有多少人會加入游戲。Nene 給了你 qqq 個整數 n1?,n2?,…,nqn_1? ,n_2? ,…,n_qn1??,n2??,,nq?? ,你應該獨立回答以下問題:

如果游戲最初有 ni?n_i?ni?? 名玩家,最終會有多少人被宣布為勝利者?


先找出nnn數組的最小值,然后對于每次詢問只要輸出(ai)+1(a_i)+1(ai?)+1%mn+1mn+1mn+1。怎么證明?
作者畫技粗糙簡略,請勿吐槽
如圖,在333下標之后包括333下標的元素都被刪除了,最后只剩下兩個元素,如果還是不信邪的話,自己造幾個樣例試試吧!

D - D

給定兩個長度為n的排列aaabbb。排列是指包含nnn個從111nnn不重復元素的數組。例如數組[2,1,3][2,1,3][2,1,3]是排列,但[0,1][0,1][0,1][1,3,1][1,3,1][1,3,1]不是。

你可以(不限次數)選擇兩個下標iiijjj,然后同時交換aia_iai?aja_jaj?? 以及bib_ibi?bjb_jbj?

你需要最小化兩個排列中的逆序對總數。排列p中的逆序對是指滿足i<ji<ji<jpi>pjp_i>p_jpi?>pj?的下標對(i,j)(i,j)(i,j)。例如當p=[3,1,4,2,5]p=[3,1,4,2,5]p=[3,1,4,2,5]時,共有333個逆序對(具體為(1,2)、(1,4)(1,2)、(1,4)(1,2)(1,4)(3,4)(3,4)(3,4))。


首先用一個結構體接入a,b數組,然后按a數組排序,最后輸出就行了。

#include<bits/stdc++.h>
using namespace std;
struct tt{int a,b;
}c[200005];
bool cmp(tt x,tt y){return x.a<y.a;
}
int main(){int t;cin>>t;while(t--){int n;cin>>n;for(int i=1;i<=n;i++)cin>>c[i].a;for(int i=1;i<=n;i++)cin>>c[i].b;sort(c+1,c+1+n,cmp);for(int i=1;i<=n;i++)cout<<c[i].a<<" ";cout<<endl;for(int i=1;i<=n;i++)cout<<c[i].b<<" ";cout<<endl;		}return 0;
}

E - E

你有一個數組 a1,a2,…,ana_1,a_2,…,a_na1?,a2?,,an?。回答 q 個以下形式的查詢:

如果我們將數組的 al,al+1,…,ara_l,a_{l+1},…,a_ral?,al+1?,,ar?? 范圍內的所有元素改為kkk,整個數組的和會是奇數嗎?

注意,查詢是獨立的,不會影響后續的查詢。


前綴和數組來存儲區間總和。注意1,因為我們只需要判斷總和是不是奇數,所以我們可以%2。注意2,把一個區間的值都改成k等于把一個區間的值都加上k,當然,僅在本題生效。
為什么呢?當然是通過打表找規律發現的,想知道為什么的自己試幾組數據吧!

#include<bits/stdc++.h>
using namespace std;
long long a[200005],s[200005];
int main(){int t;cin>>t;while(t--){memset(s,0,sizeof s);memset(a,0,sizeof a);long long n,q,cs=0;//cs數組總和cin>>n>>q;for(int i=1;i<=n;i++)cin>>a[i],cs+=a[i]%2,s[i]=a[i]%2+s[i-1];while(q--){long long l,r,k,css=cs;cin>>l>>r>>k;css+=(r-l+1)*k%2-(s[r]-s[l-1])%2;if(css%2==1){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}}}return 0;
} 

F - F

體面過于復雜,鏈接F - F


這題很顯然每次要合并最長的一條路徑才是最優操作,然而每次進行這種操作都會刪除2個葉子節點,所以先找出有多少個葉子節點,答案就是?葉子節點數?2\frac{\left \lceil 葉子節點數 \right \rceil}{2}2?葉子節點數??

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

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

相關文章

【Python 語法糖小火鍋 · 第 5 涮 · 完結】

一、糖味一句話 Python 3.10 的 match-case 把「類型 值 嵌套」一次性拆開&#xff0c; 可讀性 10&#xff0c;bug 數 10&#xff0c;if-elif 可以安心退休了。二、1 行示例 3 連發 # ① 值匹配 match status:case 200: msg "ok"case 404: msg "not found&q…

寫 SPSS文件系統

寫入 SPSS 系統文件&#xff08;.sav、.zsav&#xff09; 以下為相關的 SPSS 命令&#xff08;以大寫形式 CAPS 呈現&#xff09; savFileName : str SPSS 數據文件的文件名 以 .sav 結尾的文件使用舊版壓縮方案壓縮。 以 _uncompressed.sav 結尾的文件不壓縮&#xff0c;這在需…

云服務器--阿里云OSS(1)【阿里云OSS簡單介紹以及環境準備】

一、阿里云OSS簡介 定義&#xff1a;阿里云OSS&#xff08;Object Storage Service&#xff09;是阿里云提供的對象存儲服務&#xff0c;支持海量數據的存儲和管理。 存儲方式&#xff1a;基于“對象存儲”&#xff0c;文件以對象形式存儲&#xff0c;無需管理文件系統結構。 …

R語言代碼加密(1)

1、使用Compiler包library(compiler) cmpfile("1.R")#實現對R腳本的整體加密 compiler::loadcmp("1.Rc")#調用R腳本存在問題是&#xff0c;該方法僅對腳本進行加密。在加載生成的Rc文件后&#xff0c;腳本內具體函數&#xff0c;是可以看到具體內容的。針對…

【面試場景題】通過LinkedHashMap來實現LRU與LFU

文章目錄一、LRU與LFU的概念1. LRU&#xff08;Least Recently Used&#xff0c;最近最少使用&#xff09;2. LFU&#xff08;Least Frequently Used&#xff0c;最不經常使用&#xff09;二、LinkedHashMap的特性三、用LinkedHashMap實現LRU實現代碼&#xff1a;原理說明&…

第5章 Excel公式與函數應用指南(2):數學函數

5.2 數學函數 Excel作為強大的數據處理工具,其內置的數學函數體系為用戶提供了豐富的計算能力。從基礎的四則運算到復雜的指數對數計算,從簡單的數值舍入到專業的矩陣運算,Excel的數學函數幾乎可以滿足各類計算需求。 本節將重點為您解析七個常用且實用的數學函數:求和函…

mysql復制連接下的所有表+一次性拷貝到自己的庫

1.導出鏈接下的所有數據mysqldump -h 地址 -u 數據庫名 -p --all-databases --single-transaction --master-data2 > all_dbs.sql2.導入自己的庫mysql -h 127.0.0.1 -u root -p < all_dbs.sql3.指定導出某些庫mysqldump -u root -p --databases db1 db2 db3 > /path/t…

開發手札:UnrealEngine和Unity3d坐標系問題

最近把一套網絡模塊和一套組件模塊從u3d改造到ue4。網絡模塊通用性很高&#xff0c;畢竟協議都是通用網絡協議&#xff0c;改造后沒啥問題。但是改造組件模塊的時候就遇到了問題。首先&#xff0c;unity3d的坐標系是標準左手坐標系&#xff0c;如下&#xff1a;同時自己的幾何算…

QML 鼠標穿透

事件&#xff1a; 有一個輸入框(TextField)&#xff0c;需要實現鼠標懸浮時改變邊框顏色&#xff0c;鼠標移出后恢復原來邊框顏色&#xff1b; 這時如果需要實現此功能&#xff0c;就得使用到MouseArea&#xff0c;鼠標操作區域填充滿整個TextField。 然后實現鼠標移入移入出的…

VR 設備 PCB 怎樣憑借高頻材料達成高速傳輸

VR 設備的沉浸式體驗依賴于高分辨率圖像與低延遲交互&#xff0c;這要求設備內部數據傳輸速率達到 10Gbps 以上&#xff0c;而印制線路板&#xff08;PCB&#xff09;作為信號傳輸的核心載體&#xff0c;其材料性能直接決定傳輸效率。高頻材料憑借低介電常數&#xff08;Dk&…

Oracle字段操作

1. 新增字段 -- 新增字段 ALTER TABLE MES.WT_SUPPLEMENT_RECORD ADD (PAR_ATTR3 NUMBER DEFAULT NULL);2. 修改字段類型 -- 修改字段類型 ALTER TABLE MES.WT_SUPPLEMENT_RECORD MODIFY (PAR_ATTR3 VARCHAR2(32));3. 刪除字段 -- 刪除字段 ALTER TABLE MES.WT_SUPPLEMENT_RECO…

【原創】基于 Flask 的簡單文件收集器

在單位內網環境中&#xff0c;我經常需要收集 pdf 格式的記錄表。于是我基于 ai ide&#xff0c;開發了一個基于 Flask 開發的輕量級文件上傳服務項目&#xff0c;部署在單位飛騰芯的銀河麒麟系統上&#xff08;當然由于 python 的跨平臺&#xff0c;在 windows 和 mac 上也可部…

學習Java的Day28

今天在昨天完成的留言板項目基礎上&#xff0c;我進一步開發了一個酒店房型管理系統。該系統采用MVC架構&#xff0c;主要功能是對酒店房型信息進行增刪改查操作。數據庫設計方面&#xff0c;我創建了hotel_room_type表&#xff0c;包含以下字段&#xff1a;id&#xff1a;主鍵…

Leetcode——556. 下一個更大元素 III

題目鏈接&#xff1a;556. 下一個更大元素 III &#xff08;由于圖片上傳失敗&#xff0c;不貼原題目了&#xff0c;有需要可以前往力扣查看&#xff09; 本文給出該題的單調棧做法&#xff0c;同時繞過所有庫函數&#xff0c;所有邏輯均自行實現。 本題的思路就是從右向左按…

Idea打包可執行jar,MANIFEST.MF文件沒有Main-Class屬性:找不到或無法加載主類

背景&#xff1a;IDEA傳統方法【Project structure】-->artifact---->build的模式&#xff0c;打包【Maven】項目&#xff0c;發現生成的可執行jar包&#xff0c;顯示【找不到或無法加載主類】。但是用【Maven】的Assembly可以正常生成。期望用傳統方法實現打jar包方法&a…

檢索增強生成:RAG(Retrieval Augmented Generation)

什么是 RAG&#xff1f;為什么使用 RAG&#xff1f;LLM 微調 和 RAG&#xff1f;實戰什么是 RAG&#xff1f; RAG 在論文《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》中被引入&#xff0c;原論文是這樣描述的&#xff1a; 探索了一種 通用的 檢索增…

Android 設置/修改系統NTP服務地址

Android 手機的 NTP 時間同步&#xff08;網絡時間同步&#xff09;主要依賴網絡&#xff0c;但系統時間來源還包括其他方式&#xff0c;整體時間校準機制是多種來源的結合。具體可分為以下幾類&#xff1a; 1. 網絡 NTP 同步&#xff08;最主要方式&#xff09; 這是 Androi…

Ubuntu22.04 安裝vitis2023.2 卡在“Generating installed device list“.

關于這個問題&#xff0c;xilinx有官方說明&#xff0c;鏈接 原因&#xff1a;問題是 Ubuntu 20.04 缺少 libtinfo.so.5 庫。 解決辦法&#xff1a; sudo apt-get install libtinfo5

前端全棧修煉手冊:從 Vue3 到工程化的進階之路

本文將全方位覆蓋前端開發的核心知識&#xff0c;從 Vue3 框架的基礎語法到復雜的工程化實踐&#xff0c;從包管理工具的使用到模塊規范的深入理解&#xff0c;帶你踏上從入門到精通的進階之路。 Vue3 框架&#xff1a;新時代前端開發的基石 Vue3 核心語法探秘 Vue3 作為目前…

Jetpack Compose 常用控件

Jetpack Compose 常用控件一、基礎展示控件&#xff1a;呈現靜態內容二、交互控件&#xff1a;響應用戶操作三、列表與網格控件&#xff1a;展示大量數據四、導航與標簽控件&#xff1a;組織頁面結構五、反饋控件&#xff1a;提示與加載狀態六、布局控件&#xff1a;組織 UI 結…