【GPLT】L1-034 點贊

  • 2019 年 11 月 8 日
  • 筆記

版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/weixin_42449444/article/details/86558779

題目描述:

微博上有個「點贊」功能,你可以為你喜歡的博文點個贊表示支援。每篇博文都有一些刻畫其特性的標籤,而你點贊的博文的類型,也間接刻畫了你的特性。本題就要求你寫個程式,通過統計一個人點贊的紀錄,分析這個人的特性。

輸入格式:

輸入在第一行給出一個正整數N(≤1000),是該用戶點贊的博文數量。隨後N行,每行給出一篇被其點贊的博文的特性描述,格式為「K F​1​​⋯F​K​​」,其中1≤K≤10,F​i​​(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;  }