【GPLT】L1-034 點贊
- 2019 年 11 月 8 日
- 筆記
版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/weixin_42449444/article/details/86558779
題目描述:
微博上有個「點贊」功能,你可以為你喜歡的博文點個贊表示支援。每篇博文都有一些刻畫其特性的標籤,而你點贊的博文的類型,也間接刻畫了你的特性。本題就要求你寫個程式,通過統計一個人點贊的紀錄,分析這個人的特性。
輸入格式:
輸入在第一行給出一個正整數N(≤1000),是該用戶點贊的博文數量。隨後N行,每行給出一篇被其點贊的博文的特性描述,格式為「K F1⋯FK」,其中1≤K≤10,Fi(i=1,⋯,K)是特性標籤的編號,我們將所有特性標籤從1到1000編號。數字間以空格分隔。
輸出格式:
統計所有被點贊的博文中最常出現的那個特性標籤,在一行中輸出它的編號和出現次數,數字間隔1個空格。如果有並列,則輸出編號最大的那個。
輸入樣例:
4 3 889 233 2 5 100 3 233 2 73 4 3 73 889 2 2 233 123
輸出樣例:
233 3
解題思路:
這是一道團隊天梯賽練習里的20分水題,我的做法是無腦用map。用index和count分別記錄最常出現的編號和它的出現次數。
AC程式碼:
#include <bits/stdc++.h> using namespace std; int main() { int N; //該用戶點贊的博文數量 cin >> N; map<int,int> m; int ans = 0; //記錄出現最多的那個編號 int cnt = 0; //記錄出現最多的編號次數 while(N--) { int K; cin >> K; while(K--) { int temp; cin >> temp; m[temp]++; if(m[temp] > cnt) //更新出現次數最多的那個數 { cnt = m[temp]; ans = temp; } else if(m[temp] == cnt) //若出現次數相同 { ans = max(ans,temp); //選擇編號大的那個 } } } printf("%d %dn",ans,cnt); return 0; }