AcWing 3466. 清點代碼庫(STL:map,vector)

3466. 清點代碼庫

在這里插入圖片描述
在這里插入圖片描述
需要求有幾種不同數列,每種有多少個,可以想到用map。它的鍵是一個數列,可以把它放在vector里。也就是map<vector<int>,int>

要滿足要求的輸出序列,就要想把它放在其他容器,或數組里,進行排序。因為map不能自定義排序,而且既要對值排序,還要對鍵排序。

我起初是定義了一個結構體(里邊是vector和int),也能過,比起用vector<pair<vector<int>,int> >慢了幾十ms。

這里還有一個知識點,兩個vector< int > 可以直接比較大小,類似于字典序,在第一個代碼中有用到。

代碼1

#include<bits/stdc++.h>
using namespace std;
struct ku{vector<int> ss;int t;
}a[10005];
bool cmp(ku a,ku b)
{if(a.t==b.t)return a.ss<b.ss;return a.t>b.t;
}
int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int n,m;cin>>n>>m;map<vector<int>,int> k;while(n--){int g;vector<int> v;for(int i=0;i<m;i++){cin>>g;v.push_back(g);}k[v]++;}cout<<k.size()<<'\n';int i=0;for(auto it:k){a[i].ss=it.first;a[i].t=it.second;i++;}sort(a,a+i,cmp);for(int j=0;j<i;j++){cout<<a[j].t;for(auto l:a[j].ss)cout<<" "<<l;cout<<'\n';}}

第二個代碼中,將每種的個數y變成相反數,這樣對vector可以直接從小到大排,y恰好實現從大到小排,而比較數列時,小的在前。

代碼2

#include<bits/stdc++.h>
using namespace std;
int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int n,m;cin>>n>>m;map<vector<int>,int> k;while(n--){int g;vector<int> v;for(int i=0;i<m;i++){cin>>g;v.push_back(g);}k[v]++;}cout<<k.size()<<'\n'; vector< pair < int , vector< int >  > > a; for(auto it:k){a.push_back({-it.second,it.first});}sort(a.begin(),a.end());for(auto it:a){cout<<-it.first;for(auto ij:it.second)cout<<" "<<ij;cout<<'\n';	 	}}

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

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

相關文章

mac清理緩存的命令

mac清理緩存的命令 在macOS中&#xff0c;你可以使用以下命令來清理緩存&#xff1a; 清理DNS緩存&#xff1a; sudo killall -HUP mDNSResponder 清理Metal緩存&#xff1a; mkdir ~/Library/Caches/com.apple.Metal 清理文件系統元數據緩存&#xff1a; sudo find /private/…

Vite + Vue3 部署 GitHub

因為靜態資源是可以部署到 GitHub 上&#xff0c;自己順便學習部署網站 因為我使用的是 Vite 工具&#xff0c;官方有提供相應 Demo 部署靜態站點 | Vite 官方中文文檔 新建文件夾 .github 然后再建一個文件夾 workflows 新建文件 main.yml 文件 直接使用官方文檔 demo #…

什么是spring 的組件掃描?

Spring的組件掃描&#xff08;Component Scanning&#xff09;是Spring框架提供的一種機制&#xff0c;用于自動尋找和注冊應用程序中的組件&#xff0c;進而減少顯式的配置。這些組件通常是標有特定注解&#xff08;如Component, Service, Repository, Controller等&#xff0…

如何處理時間序列的缺失數據

您是否應該刪除、插入或估算&#xff1f; 世界上沒有完美的數據集。每個數據科學家在數據探索過程中都會有這樣的感覺&#xff1a; df.info()看到類似這樣的內容&#xff1a; 大多數 ML 模型無法處理 NaN 或空值&#xff0c;因此如果您的特征或目標包含這些值&#xff0c;則在…

Java-MySql:JDBC

目錄 JDBC概述 JDBC搭建 1、導入mysql開發商提供的jar包 2、注冊驅動 3、與數據庫連接 注解&#xff1a; Statement&#xff1a; 代碼 運行 PreparedStatement&#xff1a; 代碼 運行 PreparedStatement和Statement Statement 增 代碼 運行 刪 代碼 運…

九、圖形化腳本

多年來&#xff0c; shell腳本一直都被認為是枯燥乏味的。但如果你準備在圖形化環境中運行腳本時&#xff0c;就未必如此了。有很多與腳本用戶交互的方式并不依賴read和echo語句。 9.1 創建文本菜單 創建交互式shell腳本最常用的方法是使用菜單。提供各種選項可以幫助腳本用戶…

AI遇上遙感,未來會怎樣?

隨著航空、航天、近地空間等多個遙感平臺的不斷發展&#xff0c;近年來遙感技術突飛猛進。由此&#xff0c;遙感數據的空間、時間、光譜分辨率不斷提高&#xff0c;數據量也大幅增長&#xff0c;使其越來越具有大數據特征。對于相關研究而言&#xff0c;遙感大數據的出現為其提…

初識GPT

初識GPT GPT&#xff08;Generative Pre-trained Transformer&#xff09;是一種基于Transformer架構的預訓練語言模型&#xff0c;由人工智能研究公司OpenAI開發。GPT模型使用了一種稱為“自回歸”&#xff08;autoregressive&#xff09;的方法來生成文本&#xff0c;這意味…

Oracle執行DELETE語句后,回滾(還原)數據

--第一步&#xff1a;刪除數據 DELETE FROM "EMPLOYEER" WHERE id 123 --第二步&#xff1a;查看數據列表(判斷第一步中數據是否被刪除) SELECT * FROM "EMPLOYEER" AS OF timestamp to_timestamp( 2024-05-22 11:51:00, yyyy-mm-dd hh24:mi:ss ) --第…

基于MetaGPT構建LLM多智能體

前言 你好&#xff0c;我是GISer Liu&#xff0c;在上一篇文章中&#xff0c;我們用了兩萬多字詳細拆解了單個Agent的組成&#xff0c;并通過Github Trending訂閱智能體理解MetaGPT框架的訂閱模塊如何解決應用問題&#xff0c;但是對于復雜&#xff0c;并行的任務&#xff0c;單…

【vue】el-select選擇器實現寬度自適應

選擇器的寬度根據內容長度進行變化 <div class"Space_content"><el-selectv-model"value":placeholder"$t(bot.roommessage)"class"select"size"small"style"margin-right: 10px"change"selectcha…

JavaSE——集合框架二(1/6)-前置知識-可變參數、Collections工具類

目錄 可變參數 Collections工具類 Collections的常用靜態方法 實例演示 可變參數 可變參數 就是一種特殊形參&#xff0c;定義在方法、構造器的形參列表里&#xff0c;格式是&#xff1a;數據類型...參數名稱 可變參數的特點和好處 特點&#xff1a;可以不傳數據給它&am…

SQL常用基礎語句(一)-- ABCDE開頭

AS 將列名從 count(*) 修改為 total select count(*) as total from users where status0 將列名 username 改為 uname&#xff0c; password 改為 upwd select username as uname, password as upwd from users BETWEEN AND 說明&#xff1a;BETWEEN 篩選的是 >value1且 &l…

小程序主體變更是通過遷移嗎?是需要2個小程序嗎?

小程序遷移變更主體有什么作用&#xff1f;好多朋友都想做小程序遷移變更主體&#xff0c;但是又不太清楚具體有啥用&#xff0c;今天我就來詳細說說。首先&#xff0c;小程序遷移變更主體最重要的作用就是可以修改主體。比如你的小程序原來是 A 公司的&#xff0c;現在 A 公司…

并發編程筆記8--ThreadLocal結構詳解

ThreadLocal&#xff0c;即線程變量&#xff0c;是一個以ThreadLocal對象為鍵&#xff0c;任意對象為值的存儲結構。這個結構被附帶在線程上&#xff0c;也就是說一個線程可以根據一個ThreadLocal對象查詢到綁定在這個線程上的值。可以通過set(T)方法來設置一個值&#xff0c;在…

標識符的命名規則和規范

標識符概念 Java對各種變量, 方法和類等命名時使用的字符序列稱為標識符凡是自己可以起名字的地方都叫標識符 int num1 90; 標識符的命名規則(必須遵守) 由26個英文字母大小寫, 0-9, _或$組成數字不可以開頭. int 3ab 1;不可以使用關鍵字和保留字, 但能包含關鍵字和保留字…

操作系統實驗四:多線程與信號量編程

操作系統實驗上機 更多技術請訪問&#xff1a;www.xuanworld.top 部分審核不通過的文章將發至個人博客&#xff1a;www.xuanworld.top 歡迎來52破解論壇閱讀帖子&#xff1a;https://www.52pojie.cn/thread-1891208-1-1.html 實驗名稱實驗序號實驗日期實驗人多線程與信號量…

010-Linux磁盤介紹

文章目錄 1、名詞 2、類型 3、尺寸 4、接口/協議/總線 5、命名 6、分區方式 MBR分區 GPT分區 1、名詞 磁盤是計算機主要的存儲介質&#xff0c;可以存儲大量的二進制數據&#xff0c;并且斷電后也能保持數據不丟失。早期計算機使用的磁盤是軟磁盤&#xff08;Floppy D…

普通測試工程師與測試開發工程師:為何年薪存在15萬與30萬+的差距?

普通測試工程師想要轉型為測試開發工程師&#xff08;簡稱測開&#xff09;&#xff0c;需要學習一系列的知識和技能。以下是一些關鍵的學習領域&#xff1a; 編程能力&#xff1a;測試開發工程師需要具備一定的編程能力&#xff0c;能夠編寫自動化測試腳本和測試工具。因此&a…

基于yolov5和desnet的貓咪識別模型

前言 前段時間給學校的貓咪小程序搭建了識貓模型&#xff0c;可以通過貓咪的照片辨別出是那只貓貓&#xff0c;這里分享下具體的方案&#xff0c;先看效果圖&#xff1a; 源代碼在文末 模型訓練 在訓練服務器&#xff08;或你的個人PC&#xff09;上拉取本倉庫代碼。 圖片數…