LA6578 Trending Topic (2013-2014 ACM-ICPC Southwestern Europe Regional Contest I题) 模拟
来源:互联网 发布:数据库时间类型 编辑:程序博客网 时间:2024/05/28 15:06
题意:输出top n高频出现的词和对应词出现的次数。注意一点,可能出现超出n个输出的情况,当且仅当超出部分的单词出现次数和
第n个相同。
思路:模拟。
// file name: LA6578.cpp //// author: kereo //// create time: 2014年10月15日 星期三 23时11分51秒 ////***********************************//#include<iostream>#include<cstdio>#include<cstring>#include<queue>#include<set>#include<map>#include<vector>#include<stack>#include<cmath>#include<string>#include<algorithm>using namespace std;typedef long long ll;const int MAXN=200000+100;const int inf=0x3fffffff;const int mod=1000000000+7;#define L(x) (x<<1)#define R(x) (x<<1|1)int n;string str;vector<string>vec[7];struct node{int cnt;string s;}nod[MAXN];map<string,int>mp;bool cmp(node a,node b){if(a.cnt == b.cnt)return a.s<b.s;return a.cnt>b.cnt;}int main(){//freopen("text","r",stdin);int now=0;for(int i=0;i<7;i++) vec[i].clear();while(cin>>str){if(str=="<text>"){vec[now].clear();while(cin>>str){if(str=="</text>")break;if(str.length()<4)continue;vec[now].push_back(str);}now=(now+1)%7;}else{mp.clear();int cnt=0;cin>>n>>str;printf("<top %d>\n",n);for(int i=0;i<7;i++){for(int j=0;j<vec[i].size();j++){int id=mp[vec[i][j]];if(id) nod[id].cnt++;else{mp[vec[i][j]]=++cnt;nod[cnt].s=vec[i][j];nod[cnt].cnt=1;}}}sort(nod+1,nod+cnt+1,cmp);for(int i=1;i<=min(cnt,n);++i)cout<<nod[i].s<<" "<<nod[i].cnt<<endl;int num=nod[min(cnt,n)].cnt;for(int i=min(cnt,n)+1;i<=cnt;++i) if(nod[i].cnt==num) cout<<nod[i].s<<" "<<nod[i].cnt<<endl;printf("</top>\n");}}return 0;}
0 0
- LA6578 Trending Topic (2013-2014 ACM-ICPC Southwestern Europe Regional Contest I题) 模拟
- LA6575 Odd and Even Zeroes (2013-2014 ACM-ICPC Southwestern Europe Regional Contest F题) 规律
- LA6576 VivoParc (2013-2014 ACM-ICPC Southwestern Europe Regional Contest G题) 搜索
- Problem I - Bricks ACM/ICPC Central Europe Regional Contest 2014
- 2015-2016 ACM-ICPC Southwestern Europe Regional Contest (SWERC 15) C
- 2015-2016 ACM-ICPC Southwestern Europe Regional Contest (SWERC 15)训练总结【7/10】
- Problem C - Sums ACM/ICPC Central Europe Regional Contest 2014
- Problem D - Wheels ACM/ICPC Central Europe Regional Contest 2014
- 2013-2014 ACM ICPC Central European Regional Contest (CERC 13) I题Crane
- 【codeforces】2014-2015 ACM-ICPC, Central Europe Regional Contest (CERC 14) F Vocabulary【dp】
- 2014-2015 ACM-ICPC, Central Europe Regional Contest (CERC 14) [Gym-100543G]
- The 2014 ACM-ICPC Asia Mudanjiang Regional Contest - I
- 2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016)
- 2015-2016 ACM-ICPC, Central Europe Regional Contest (CERC 15) F.Frightful Formula(大数NTT)
- 2014 ACM/ICPC Asia Regional Contest - B
- 2013-2014 ACM ICPC Central European Regional Contest (CERC 13) K题(dp)
- The 2014 ACM-ICPC Asia Mudanjiang Regional Contest - I.Information Entropy
- 2014 ACM/ICPC Xi'an Regional I - International Collegiate Routing Contest
- Hive 中内部表与外部表的区别与创建方法
- 关于for循环的一个初学者易犯得错误。
- iOS +initialize
- asio与序列化——被忽略的神器asio::streambuf
- 新手对于c++的认识 1 关于继承的小知识点
- LA6578 Trending Topic (2013-2014 ACM-ICPC Southwestern Europe Regional Contest I题) 模拟
- hdu1075(map映射)
- UVA11292杀怪
- linux内核模块编程入门
- nginx
- 黑马程序员——基础语法
- ZOJ 2547 Tri Tiling 脑筋急转弯
- 七牛副总裁杜江华:云存储为移动医疗数据管理护航!
- android自定义布局-ScrollLayout 实现左右滑动