日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【HDU - 5688 】Problem D(STL+map)

發布時間:2023/12/10 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【HDU - 5688 】Problem D(STL+map) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題干:

度熊所居住的 D 國,是一個完全尊重人權的國度。以至于這個國家的所有人命名自己的名字都非常奇怪。一個人的名字由若干個字符組成,同樣的,這些字符的全排列的結果中的每一個字符串,也都是這個人的名字。例如,如果一個人名字是 ACM,那么 AMC, CAM, MAC, MCA, 等也都是這個人的名字。在這個國家中,沒有兩個名字相同的人。?

度熊想統計這個國家的人口數量,請幫助度熊設計一個程序,用來統計每一個人在之前被統計過多少次。?

Input

這里包括一組測試數據,第一行包含一個正整數NN,接下來的NN?行代表了?NN?個名字。NN?不會超過100,000100,000,他們的名字不會超過40位.?

Output

對于每輸入的一個人名,輸出一個整數,代表這個人之前被統計了多少次。

Sample Input

5 ACM MAC BBA ACM BAB

Sample Output

0 1 0 2 1

解題報告;

? ? 想找個辦法水掉排序,這樣復雜度會很低,但是失敗了。。。老老實實用排序。

AC代碼:

#include<bits/stdc++.h>using namespace std; struct Node {int bk[30];bool operator < ( const Node b)const {bk[0]<b.bk[0];} }tmp1,tmp2; int main() {char s[50];int n,len; // freopen("in.txt","r",stdin);map<string,int> mp; /* map<Node,int> mp;map<Node,int> ::iterator it;map<int, int> mpp;mpp[1]++;mpp[1]++;cout<<"%%%%"<<mpp[1]<<endl;tmp1.bk[1]=2;tmp2.bk[1]=2;it = mp.begin();//mp[tmp1]++;mp.insert(make_pair(tmp1,0) );cout<<mp[tmp1]<<endl;mp[tmp2]++;cout<<mp[tmp1]<<endl;for(; it!=mp.end(); it++)cout<< it->second <<endl;cout<<"hhhhhhhh"<<endl; */cin>>n;while(n--) {Node tmp ;scanf("%s",s);len = strlen(s);sort(s,s+len);printf("%d\n",mp[s]);mp[s]++;/*for(int i = 0 ; i<len; i++) {tmp.bk[s[i]-'a']++;}printf("%d\n",mp[tmp]);mp[tmp]++;*/}return 0 ; }

?

總結

以上是生活随笔為你收集整理的【HDU - 5688 】Problem D(STL+map)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。