zoukankan      html  css  js  c++  java
  • HDU 1381 Crazy Search

     题目出处 http://acm.hdu.edu.cn/showproblem.php?pid=1381

    此题典型的键值对计数,使用Map容器即可。

    map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。

    STL的map的底层实现是红黑树,STL的红黑树实现中维护了一个node_count之类的簿记变量,用以计算节点数。

     1 #include <iostream>
     2 #include <map>
     3 #include <string>
     4 using namespace std;
     5 map<string, int> MC;
     6 int main()
     7 {
     8     int T,N, NC;
     9     string test;
    10     cin>>T;
    11     while( T--)
    12     {
    13         cin>>N>>NC>>test;
    14         MC.clear();
    15         const int length = test.size(); // 记录输入字符串长度 
    16         for(int i=0;i<length-N+1;i++)
    17         {
    18                 string tmp(test,i,N);   //截取子串
    19                 if(MC.count(tmp)==0) ++MC[tmp];   //将key(tmp)所对应的值增加计数
    20         }
    21         cout<<MC.size()<<endl;  // 输出map中不重复的键的个数,也就是map的size
    22     }
    23     return 0;
    24 }
  • 相关阅读:
    NSLocalizedString用法
    4-27学习心得
    手势学习
    plist处理
    数据存储
    initWithFrame方法
    控制器跳转小常识
    UIGestureRecognizer学习笔记
    博客资源
    检测手机wifi有没有打开
  • 原文地址:https://www.cnblogs.com/double-win/p/3613824.html
Copyright © 2011-2022 走看看