麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

201503-2

2019-11-08 03:09:49
字體:
來源:轉載
供稿:網友
問題描述
試題編號:201503-2
試題名稱:數字排序
時間限制:1.0s
內存限制:256.0MB
問題描述:問題描述  給定n個整數,請統計出每個整數出現的次數,按出現次數從多到少的順序輸出。輸入格式  輸入的第一行包含一個整數n,表示給定數字的個數。  第二行包含n個整數,相鄰的整數之間用一個空格分隔,表示所給定的整數。輸出格式  輸出多行,每行包含兩個整數,分別表示一個給定的整數和它出現的次數。按出現次數遞減的順序輸出。如果兩個整數出現的次數一樣多,則先輸出值較小的,然后輸出值較大的。樣例輸入125 2 3 3 1 3 4 2 5 2 3 5樣例輸出3 42 35 31 14 1評測用例規模與約定  1 ≤ n ≤ 1000,給出的數都是不超過1000的非負整數。
問題分析:題目求某個數字出現的次數,立即想到哈希表的思想,即將數字和次數用數組來聯系起來。又題目說明任意數字是不超過1000的非負整數,滿足哈希表非負整數和大小較小(1000個int型變量 一共4000字節左右  內存為256M)的特點。由于輸出時要求一定的格式,因此需要將數字及次數的對應關系存儲在另一個結構體數組中然后利用庫函數進行排序。代碼:#include <iostream>#include<algorithm>using namespace std;/* run this PRogram using the console pauser or add your own getch, system("pause") or input loop */int num[1001];int n;struct Num{int i,count;bool Operator <(const Num &n)const{bool ans=false;if(count>n.count){ans=true;}if(count == n.count){if(i<n.i){ans=true;}} return ans;}};Num N[1001];int main(int argc, char *argv[]) {while(cin>>n){for(int i=0;i<1001;i++){num[i]=0;}for(int i=0;i<n;i++){int tmp;cin>>tmp;num[tmp]++;}for(int i=0;i<1001;i++){N[i].i=i;N[i].count=num[i];}sort(N,N+1001);  //n=1000時 tmp=1000 那么就需要排序到1000這里 因此N+1001 bool out=false;for(int i=0;i<1001;i++){if(N[i].count != 0){if(out == false){out=true;}else{cout<<endl;} cout<<N[i].i<<" "<<N[i].count;}} }return 0;}代碼分析:提交時出現如圖情況90分時分析可能是邊界值出現錯誤,果然發現是由于n==1000時排序出現錯誤。最后正確。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美成视频在线观看 | 99视频有精品 | 欧美黄色性视频 | 日本残忍极度灌浣肠视频 | 欧美第1页 | 九九热视频免费在线观看 | 97超级碰碰人国产在线观看 | 亚洲第五色综合网 | 日韩精品久久久久久久电影99爱 | 欧美hdfree性xxxx | 亚洲午夜视频在线 | 美女黄污视频 | 久久久一区二区精品 | 羞羞视频免费观看入口 | 九九热在线视频观看这里只有精品 | 欧美黄色一级生活片 | 国产精品爱久久久久久久 | 中文字幕在线观看1 | 欧美69free性videos | av视在线| 男女无套免费视频 | 国产九九| 亚洲成人福利在线观看 | 天堂亚洲一区 | 日韩欧美高清一区 | 黄色免费小视频网站 | 日本在线免费观看视频 | 欧美亚洲综合网 | 激情在线视频 | 午夜精品老牛av一区二区三区 | 欧美视频在线观看一区 | 毛片天天看| 国产精选91| 国产午夜精品久久久久婷 | 免费国产视频大全入口 | 免费在线观看午夜视频 | 中文字幕在线资源 | 中日韩乱码一二新区 | 中文欧美日韩 | 史上最强炼体老祖动漫在线观看 | 久久国产精品区 |