`
xxx0624
  • 浏览: 30810 次
文章分类
社区版块
存档分类
最新评论

POJ3297+map字符串处理

 
阅读更多

附数据两组:

ABCC
abc
ae
AAA
abc
AAAA
abc

A
a
B
a
C
a
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
#include<iostream>
#include<queue>
#include<map>
#include<stack>
#include<set>
#include<math.h>
using namespace std;
typedef long long int64;
//typedef __int64 int64;
typedef pair<int64,int64> PII;
#define MP(a,b) make_pair((a),(b)) 
const int maxn = 105;
const int maxm = 1005;
const int inf = 0x7fffffff;
const double pi=acos(-1.0);
const double eps = 1e-8;

struct Node{
    string name;
    int cnt;
}project[ maxn ];
map<string,int>mp;
map<string,int>special;
void init(){
    mp.clear();
    special.clear();
}
int cmp( Node a,Node b ){
    if( a.cnt!=b.cnt )
        return a.cnt>b.cnt;
    else
        return a.name<b.name;
}
int main(){ 
    string temp;
    while( getline( cin,temp ) ){
        //cout<<"temp = "<<temp<<endl;
        if( '0'==temp[0] ) 
            break;
        if( '1'==temp[0] ) 
            continue;
        init();
        int Num = 1;
        while( 1 ){
            project[ Num ].name = temp;
            project[ Num ].cnt = 0;
            while( 1 ){
                getline( cin,temp );
                //cout<<"temp = "<<temp<<endl;
                if( temp.size()==1&&temp[0]=='1' ) break;
                if( (  temp[0]>='a'&&temp[0]<='z' )||( temp[0]>='0'&&temp[0]<='9' ) ){
                    if( mp[ temp ]==0 ){
                        mp[ temp ] = Num;
                        project[ Num ].cnt ++ ;
                    }
                    else {
                        if( mp[ temp ]==Num ){}
                        else if( special[ temp ]==0 ){
                            special[ temp ] = 1;
                            if( project[ mp[temp] ].cnt>0 ) 
                                project[ mp[ temp ] ].cnt --;
                        }
                    }
                }
                else
                    break;
            }
            Num ++ ;
            if( '1'==temp[0] ) break;
        }
        //cout<<"ok"<<endl;
        sort( project+1,project+Num,cmp );
        for( int i=1;i<Num;i++ ){
            cout<<project[i].name<<" "<<project[i].cnt<<endl;
        }
    }
    return 0;
}


分享到:
评论

相关推荐

    POJ3096-Surprising Strings

    《北京大学POJ3096:令人惊奇的字符串——解题报告与代码解析》 北京大学的在线编程平台POJ上有一道题目名为“Surprising Strings”(POJ 3096),这是一道考察算法思维和编程能力的题目。在本篇解题报告中,我们将...

    poj_1002_487.rar_poj 1002

    【标题】"poj_1002_487.rar_poj 1002"指的是北京大学在线编程平台上的第1002道题目,这道题目涉及到计算机科学中的算法设计与实现,特别是字符串处理和哈希映射。在这个问题中,我们需要编写一个程序,该程序能够...

    POJ100题_C++_源码

    这些题目涵盖了各种难度和类型的算法问题,包括但不限于排序、搜索、图论、动态规划、字符串处理等。通过学习这些源码,开发者可以了解如何用C++高效地解决实际问题,同时也能深入理解C++语言的特性和用法。 以下是...

    ACM.zip_ACM_poj_poj3187_poj3669

    题目poj3187和poj3669涉及的具体内容无法直接得知,但根据ACM竞赛的特点,它们可能涉及经典的算法问题,如动态规划、贪心算法、图论、字符串处理、排序算法等。 描述中提到“已经测试过可以通过oj”,这意味着提供...

    POJ1234源代码

    - **包含库**:这段代码包含了多种C++标准库,如输入输出流、字符串处理、向量容器等。 - **宏定义**:定义了一系列宏用于简化输入输出操作以及循环控制等。 - **常量定义**:定义了一个常量`Inf`用于表示一个较大的...

    POJ 1002 487-3279解题报告

    本题目属于电话号码处理问题,主要考查字符串处理、哈希表应用以及排序等相关算法知识。题目描述了一个有趣的场景:为了方便记忆,企业往往希望自己的电话号码能够拼写出有意义的单词或短语。比如,“TUT-GLOP”对应...

    C++POJ前四季

    3. **数组与字符串**:数组是存储相同类型数据的集合,字符串则是在C++中被特殊处理的字符数组。在解题时,数组常用于存储和处理数据,字符串则在处理文本问题时发挥重要作用。 4. **指针与引用**:指针是C++中的...

    Hash相关题解1

    这道题同样可以使用哈希函数或者Trie字典树解决,通过在原始字符串上直接处理,减少额外的空间消耗。 4. HDU 2648【基础】 商店价格排名问题可以通过哈希表来快速查找特定商店的价格变化,同时通过排序和二分查找来...

    ACM POJ 1002题解摘要

    - 创建一个新字符串`afterchange`来存储标准化后的电话号码。 - 遍历电话号码中的每个字符,进行标准化处理: - 跳过短横线。 - 将字母替换为对应的数字。 - 保持数字不变。 - 在第三个和第四个位置插入短横线...

    中学生信息奥赛的入门,信息学奥赛(C++)编写的例子程序

    字符串是字符数组的一种特例,C++中常用`string`类型来处理字符串。 5. **算法基础**:信息奥赛的核心是解决问题,这通常涉及到排序(如冒泡排序、快速排序)、搜索(如线性搜索、二分搜索)、图论、动态规划等经典...

    c程序noj答案

    这个题目可能涉及排序、搜索、字符串处理、数学计算等常见算法问题。解题者通常会根据题目需求,选择合适的数据结构和算法,编写代码并进行调试,直至代码能够在所有测试用例上正确运行。 通过分析和学习这些成功的...

    常用算法 (2).pdf

    - **字符串算法**:KMP、Trie、后缀树、后缀数组等。 在学习这些算法时,建议通过实际编程练习来加深理解,可以尝试解决POJ等在线编程平台上的题目,如poj3096、poj3007等。同时,理解并熟练应用C++标准模板库,这...

    ACM学习建议

    4. **字符串算法**:KMP、Trie树等,对于文本检索、模式匹配等任务极其有效。 5. **数论**:欧几里得算法、扩展欧几里得算法、中国剩余定理、费马小定理等,是解决数论问题的基础。 #### 三、数据结构 1. **栈与...

Global site tag (gtag.js) - Google Analytics