码迷,mamicode.com
首页 > 其他好文 > 详细

[2016-05-06][codeforces][670C - Cinema]

时间:2016-05-06 21:48:39      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:

  • 时间:2016-05-06 21:24:29 星期五

  • 题目编号:[2016-05-06][codeforces][670C - Cinema]

  • 题目大意:

    • 给n个人会的唯一语言,给m部电影,每部电影是某个语言和某个字母的,从m不电影中选择一个,为了尽可能是更多个人please,要求尽可能多的人会电影的语言,相同的时候,要尽可能多的人看懂字母
  • 分析:

    • 语言的范围是 1 - 1e9 ,但是n只有2 * 1E6种,所以使用map匹配一下对应语言的数目
    • 然后每次输入一部电影,比较当前选择的电影(当前最优值),如果这部电影更好,就替换,否则不变
  1. #include<cstdio>
  2. #include<map>
  3. using namespace std;
  4. const int maxm = 1E5 * 2 + 10;
  5. int a[maxm],b[maxm];
  6. map<int,int> qm;
  7. int main(){
  8. int n,tmp,m;
  9. scanf("%d",&n);
  10. for(int i = 0 ; i < n ; ++i){
  11. scanf("%d",&tmp);
  12. if(qm.find(tmp) == qm.end()){
  13. qm[tmp] = 1;
  14. }else ++qm[tmp];
  15. }
  16. scanf("%d",&m);
  17. for(int i = 0 ; i < m ; ++i){
  18. scanf("%d",&a[i]);
  19. }
  20. for(int i = 0 ; i < m ; ++i){
  21. scanf("%d",&b[i]);
  22. }
  23. int ans;
  24. pair<int,int> cnt,cur;
  25. cnt.first = cnt.second = -1;
  26. for(int i = 0; i < m ; ++i){
  27. cur = pair<int,int>(qm[a[i]],qm[b[i]]);
  28. if( cnt < cur ){
  29. cnt = cur;
  30. ans = i;
  31. }
  32. }
  33. printf("%d\n",ans + 1);
  34. return 0;
  35. }




[2016-05-06][codeforces][670C - Cinema]

标签:

原文地址:http://www.cnblogs.com/qhy285571052/p/5582f3709fd931f9c0b4e5172dbfbe99.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!