L2 清點代碼庫----PTA(疑問)

code.jpg

上圖轉自新浪微博:“阿里代碼庫有幾億行代碼,但其中有很多功能重復的代碼,比如單單快排就被重寫了幾百遍。請設計一個程序,能夠將代碼庫中所有功能重復的代碼找出。各位大佬有啥想法,我當時就懵了,然后就掛了。。。”

這里我們把問題簡化一下:首先假設兩個功能模塊如果接受同樣的輸入,總是給出同樣的輸出,則它們就是功能重復的;其次我們把每個模塊的輸出都簡化為一個整數(在?int?范圍內)。于是我們可以設計一系列輸入,檢查所有功能模塊的對應輸出,從而查出功能重復的代碼。你的任務就是設計并實現這個簡化問題的解決方案。

輸入格式:

輸入在第一行中給出 2 個正整數,依次為?N(≤104)和?M(≤102),對應功能模塊的個數和系列測試輸入的個數。

隨后?N?行,每行給出一個功能模塊的?M?個對應輸出,數字間以空格分隔。

輸出格式:

首先在第一行輸出不同功能的個數?K。隨后?K?行,每行給出具有這個功能的模塊的個數,以及這個功能的對應輸出。數字間以 1 個空格分隔,行首尾不得有多余空格。輸出首先按模塊個數非遞增順序,如果有并列,則按輸出序列的遞增序給出。

注:所謂數列 {?A1?, ...,?AM??} 比 {?B1?, ...,?BM??} 大,是指存在?1≤i<M,使得?A1?=B1?,...,Ai?=Bi??成立,且?Ai+1?>Bi+1?。

輸入樣例:

7 3
35 28 74
-1 -1 22
28 74 35
-1 -1 22
11 66 0
35 28 74
35 28 74

輸出樣例:

4
3 35 28 74
2 -1 -1 22
1 11 66 0
1 28 74 35

代碼長度限制

16 KB

Java (javac)

時間限制

1500 ms

內存限制

128 MB

Python (python3)

時間限制

1500 ms

內存限制

64 MB

其他編譯器

時間限制

500 ms

內存限制

64 MB

棧限制

8192 KB

想法:

想用map映射。就是把輸入的每一行當作一個string,然后用st數組記錄不同的string出現的個數,然后排個序并按題目輸出。結果有兩個點過不去。

代碼:

#include<bits/stdc++.h>
using namespace std;
int n,m;
int st[10010]={0};
string s1[10010],s2[10010];
map<string,int>mp;
int cnt=1;
bool cmp(string a,string b){
? ? if(st[mp[a]]==st[mp[b]]) return a<b;
? ? return st[mp[a]]>st[mp[b]];
}
int main(){
? ? cin>>n>>m;
? ? getchar();
? ? for(int i=0;i<n;i++){
? ? ? ? getline(cin,s1[i]);
? ? ? ? if(mp[s1[i]]==0) {mp[s1[i]]=cnt;s2[cnt]=s1[i];cnt++;}
? ? ? ? st[mp[s1[i]]]++;
? ? }
? ? cout<<cnt-1<<endl;
? ? sort(s2+1,s2+cnt,cmp);
? ? for(int i=1;i<cnt;i++){
? ? ? ? cout<<st[mp[s2[i]]]<<' '<<s2[i]<<endl;
? ? }
? ? return 0;
}

然后我發現確實是有些例子是錯的。

例如這個例子

輸出的是這個,負數的情況有些就不行。

但是吧,我想著弄成m維數組,又不知如何分辨出不同的輸入模塊。不知用set行不行。

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

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

相關文章

docker pullpush 生成鏡像文件并push 到阿里云

pull docker docker pull ultralytics/ultralytics # 拉取yolov8的鏡像倉庫 docker run -it ultralytics/ultralytics # 運行鏡像 conda create -n gsafety python3.8 # 創建環境 source activate gsafety # 激活環境 pip install -i https://pypi.tuna.tsinghua.edu.cn/simp…

糖尿病性視網膜病變(DR)的自動化檢測和分期

糖尿病性視網膜病變&#xff08;DR&#xff09;的自動化檢測和分期 提出背景DR的階段及其特征 歷年解法計算機視覺方法多分類方法 新的解法深度學習方法遷移學習大模型多模型集成全流程分析 總結特征1&#xff1a;圖像分割特征2&#xff1a;疾病分級特征3&#xff1a;治療建議生…

開源模型應用落地-工具使用篇-獲取文本向量(五)

一、前言 在之前學習的"開源模型應用落地-工具使用篇"系列文章中&#xff0c;我們已經學會了如何使用向量數據庫。然而&#xff0c;還有一個問題一直未解決&#xff0c;那就是如何處理文本向量。在本文中&#xff0c;我們將繼續深入學習關于向量的知識&#xff0c;特…

Redis的哨兵系統

Redis 哨兵&#xff08;Sentinel&#xff09;系統是一種用于管理多個 Redis 服務器的系統&#xff0c;其主要目標是提供監控、通知、自動故障轉移和服務發現功能。哨兵系統能夠在 Redis 實例出現問題時自動進行故障轉移&#xff0c;確保系統的高可用性。其工作原理如下&#xf…

常見消息中間件

ActiveMQ 我們先看ActiveMQ。其實一般早些的項目需要引入消息中間件&#xff0c;都是使用的這個MQ&#xff0c;但是現在用的確實不多了&#xff0c;說白了就是有些過時了。我們去它的官網看一看&#xff0c;你會發現官網已經不活躍了&#xff0c;好久才會更新一次。 它的單機吞…

2024年學習的最高薪酬編程語言

2024年學習的最高薪酬編程語言 10. Scala Scala是一種在Java虛擬機&#xff08;JVM&#xff09;上運行的函數式編程語言。它通常用于大數據處理、機器學習和后端Web開發。 關于Scala編程語言及其常見用途的要點如下&#xff1a; Scala是一種通用編程語言&#xff0c;運行在J…

mac真的安裝不了vmware嗎 mac如何安裝crossover crossover序列號從哪里買 購買正版渠道

有些用戶可能想在mac上運行一些只能在windows上運行的軟件&#xff0c;比如游戲、專業軟件等。這時候&#xff0c;就需要用到虛擬機技術&#xff0c;也就是在mac上安裝一個可以模擬其他操作系統的軟件&#xff0c;比如vmware或者crossover。那么&#xff0c;mac真的安裝不了vmw…

2024年華為OD機試真題-貪心歌手-Python-OD統一考試(C卷)

題目描述: 一個歌手準備從A城去B城參加演出。 1) 按照合同,他必須在T天內趕到。 3) 歌手不能往回走。 4) 每兩座城市之間需要的天數都可以提前獲知。 5) 歌手在每座城市都可以在路邊賣唱賺錢。經過調…

【前端素材】推薦優質后臺管理系統Xoric平臺模板(附源碼)

一、需求分析 當我們從多個層次來詳細分析后臺管理系統時&#xff0c;可以將其功能和定義進一步細分&#xff0c;以便更好地理解其在不同方面的作用和實際運作。 1. 功能層次 a. 用戶管理功能&#xff1a; 用戶注冊和登錄&#xff1a;管理用戶賬戶的注冊和登錄過程。權限管…

K8S故障處理指南:網絡問題排查思路

1. 前言 對于私有化環境&#xff0c;客戶的網絡架構&#xff0c;使用的云平臺存在著各種差異&#xff0c;K8S網絡可能會出現各種問題&#xff0c;此文著重講解遇到此種問題的排查方法和思路&#xff0c;不會涉及相關網絡底層技術描述. 環境說明 由于我們的k8s網絡組件默認使…

5.網絡游戲逆向分析與漏洞攻防-游戲網絡架構逆向分析-測試需求與需求拆解

內容參考于&#xff1a;易道云信息技術研究院VIP課 上一個內容&#xff1a;模擬游戲登陸器啟動游戲并且完成注入 首先正常分析軟件程序有沒有漏洞&#xff0c;需要通過它的操作侵入&#xff0c;比如買東西&#xff0c;就通過買東西的按鈕它背后有源代碼就看源代碼&#xff0c…

TypeScript學習筆記-基礎

一、type 和 interface type和 interface的區別&#xff1a;TypeScript 中文網: 文檔 - 日常類型 type類型別名和interface接口非常相似&#xff0c;在很多情況下可以在它們之間自由選擇。interface 的幾乎所有功能都在 type 中可用&#xff0c;主要區別在于無法重新打開類型…

【PythonGIS】基于Python融合矢量數據(多面合一)

之前發過使用批量合并矢量數據的文章&#xff1a;【Python&GIS】基于Python批量合并矢量數據&#xff0c;正好前段時間有需求把矢量數據進行融合&#xff0c;然后就編了一段融合矢量數據的代碼。今天就和大家分享一下如何使用Python對矢量數據實現融合的操作。 1.定義 首先…

基于Embedding召回和DSSM雙塔模型

文章目錄 基于Embedding召回介紹基于Embedding召回算法分類I2I召回U2I召回 DSSM模型DSSM雙塔模型層次 基于Embedding召回介紹 基于embedding的召回是從內容文本信息和用戶查詢的角度出發&#xff0c;利用預訓練的詞向量模型或深度學習模型&#xff0c;將文本信息轉換成向量進行…

三、創建腳手架和腳手架分析

三、創建腳手架 一、環境準備 1、安裝node.js **下載地址&#xff1a;**https://nodejs.org/zh-cn/界面展示 2、檢查node.js版本 查看版本的兩種方式 node -vnode -version 出現版本號則說明安裝成功&#xff08;最新的以官網為準&#xff09; 3、為了提高我們的效率&…

深度學習從入門到不想放棄-7

上一章的內容 深度學習從入門到不想放棄-6 (qq.com) 今天講的也算基礎(這個系列后來我一尋思,全是基礎 ),但是可能要著重說下,今天講前向計算和反向傳播,在哪兒它都永遠是核心,不管面對什么模型 前向計算: 有的叫也叫正向傳播,正向計算的,有的直接把前向的方法梯度下…

祖龍娛樂 x Incredibuild

關于祖龍娛樂 祖龍娛樂有限公司&#xff08;下文簡稱“祖龍娛樂”&#xff09;是一家總部位于北京的移動游戲開發公司&#xff0c;成立于 2014 年&#xff0c;擁有成功的大型多人在線角色扮演游戲移動游戲組合&#xff0c;如《六龍爭霸》、《夢幻誅仙》和《萬王之王 3D》。公司…

微信小程序 ---- 慕尚花坊 項目初始化

目錄 項目介紹 01. 項目概述 02. 項目演示 03. 項目技術棧 04. 接口文檔 申請開發權限 項目初始化 01. 創建項目與項目初始化 02. 自定義構建 npm 集成Sass 03. 集成項目頁面文件 04. VsCode 開發小程序項目 項目介紹 01. 項目概述 [慕尚花坊] 是一款 同城鮮花訂購…

Context Capture無法量測連接點,Survey提示Read only只讀模式

Context Capture無法量測連接點&#xff0c;Surveys提示Read only只讀模式 出現這個問題一般是因為當前block已經完成三維重建&#xff0c;所以無法再編輯稀疏重建&#xff08;空三&#xff09;結果。只能把當前block復制一份&#xff0c;在復制的block上量測新的連接點。如下…

Netty中的Arena是什么以及LT和ET

Arena是什么 在Netty中,Arena是一種內存分配器(Memory Allocator)的概念。Arena的主要目的是提高內存分配和釋放的效率&#xff0c;減少碎片化&#xff0c;從而提高系統性能。 具體而言&#xff0c;Netyy中的Arena主要用于分配和管理ByteBuf對象的內存&#xff0c;ByteBuf是Ne…