• 百度之星资格赛 2016 Problem 1004


    本文链接:http://www.cnblogs.com/Ash-ly/p/5494630.html

    题意:

      熊所居住的 D 国,是一个完全尊重人权的国度。以至于这个国家的所有人命名自己的名字都非常奇怪。一个人的名字由若干个字符组成,同样的,这些字符的全排列的结果中的每 一个字符串,也都是这个人的名字。例如,如果一个人名字是 ACM,那么 AMC, CAM, MAC, MCA, 等也都是这个人的名字。在这个国家中,没有两个名字相同的人。度熊想统计这个国家的人口数量,请帮助度熊设计一个程序,用来统计每一个人在之前被统计过多少次。

    思路:

      利用STL的map以人名为键值,以出现的次数为值,建立映射就OK了.每次输入时对这个字符串排序,经过重新排列后一样的字符串按照字典序排序后也必定相同.

    代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cstdlib>
     5 #include <algorithm>
     6 #include <string>
     7 #include <map>
     8 using namespace std;
     9 map <string, int> mp;
    10 
    11 int main()
    12 {
    13     //freopen("input.txt", "r", stdin);
    14     int n;
    15     scanf("%d", &n);
    16     while(n--){
    17         char s[47] = {0};
    18         scanf("%s", s);
    19         int len = strlen(s);
    20         sort(s, s + len);
    21         map<string, int>::iterator iter;
    22         string str(s);
    23            iter = mp.find(str);
    24            if(iter == mp.end()){
    25                printf("0
    ");
    26                mp.insert(pair <string, int> (str,1));
    27            }
    28            else{
    29                printf("%d
    ", iter -> second);
    30                iter -> second++;
    31            }
    32     }
    33     return 0;
    34 }
  • 相关阅读:
    iOS 数据持久化--CoreData
    iOS 数据持久化-- FMDB
    iOS数据持久化--数据库
    iOS数据持久化--归档
    iOS数据持久化--用户属性
    python爬坑记录
    Flutter 爬坑记录
    Web开发爬坑记录
    博客 新址: http://zhoushaoting.com/
    微信小程序开发技巧及填坑记录
  • 原文地址:https://www.cnblogs.com/Ash-ly/p/5494630.html
Copyright © 2020-2023  润新知