zoukankan      html  css  js  c++  java
  • P1808 单词分类_NOI导刊2011提高(01)

    题目描述

    Oliver为了学好英语决定苦背单词,但很快他发现要直接记住杂乱无章的单词非常困难,他决定对单词进行分类。

    两个单词可以分为一类当且仅当组成这两个单词的各个字母的数量均相等。

    例如“AABAC”,它和“CBAAA”就可以归为一类,而和“AAABB”就不是一类。

    现在Oliver有N个单词,所有单词均由大写字母组成,每个单词的长度不超过100。你要告诉Oliver这些单词会被分成几类。

    输入输出格式

    输入格式:

     

    输入文件的第一行为单词个数N,以下N行每行为一个单词。

     

    输出格式:

     

    输出文件仅包含一个数,表示这N个单词分成的类数

    输入输出样例

    输入样例#1: 复制
    3 
    AABAC 
    CBAAA 
    AAABB
    输出样例#1: 复制
    2

    说明

    对于70%的数据满足N≤100。 对于100%的数据满足N≤10000。

    昨天就看了挺久这道题,

    一直没想出比较合适的方法。

    几个题解的思路好像想到了,

    但是储备知识不足,,

    char数组,和string的一些细节区别,

    运用上的区别不是特别清楚,

    先排序再比较是否相同是可行的。

    那就自己试着写吧。。。

    这里用的map。

    就比较简单易懂了。

    也是先排序(对每个字符串),

    然后看是否出现过。。。

     

    详见代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<algorithm>
     5 #include<cstring>
     6 #include<queue>
     7 #include<map> 
     8 using namespace std;
     9 
    10 int n,ans;
    11 string a;
    12 map<string,bool>x;
    13 
    14 int main()
    15 {
    16     scanf("%d",&n);
    17     for(int i=1;i<=n;++i)
    18     {
    19         cin>>a;
    20         sort(a.begin() ,a.end() );
    21         if(!x[a])
    22         {
    23             ans++;
    24             x[a]=1;    
    25         }
    26     }    
    27     printf("%d",ans);
    28     return 0;
    29 }

    如果你不开心,那我就把右边这个帅傻子分享给你吧, 

    你看,他这么好看,那么深情的望着你,你还伤心吗? 

    真的!这照片盯上他五秒钟就想笑了。 

    一切都会过去的。

  • 相关阅读:
    [转] EJB 3和Spring技术体系比较
    JBOSS只能本机localhost和127.0.0.1能访问的解决
    JBOSS EAP 6.0+ Standalone模式安装成Windows服务
    IBM WebSphere MQ 7.5基本用法
    maven学习(上)- 基本入门用法
    mac下环境变量、maven3.1.1 及 jdk1.7.0.45配置
    java:读/写配置文件
    java:使用匿名类直接new接口
    java与c#的反射性能比较
    XmlSpy / XSD 以及 验证
  • 原文地址:https://www.cnblogs.com/Mary-Sue/p/9428230.html
Copyright © 2011-2022 走看看