zoukankan      html  css  js  c++  java
  • Hdu 1800 字符串hash

    题目链接

    题意: 给出n(n<=3000)个字符串(长度<30,数字组成,肯能存在前导0), 问该序列最少可以分成多少个单调序列.可以转化成求相同字符串的个数的最大值

    附上代码:

     1 /*************************************************************************
     2     > File Name: 1800.cpp
     3     > Author: Stomach_ache
     4     > Mail: sudaweitong@gmail.com
     5     > Created Time: 2014年05月13日 星期二 20时12分31秒
     6     > Propose: 
     7  ************************************************************************/
     8 
     9 #include <cmath>
    10 #include <string>
    11 #include <cstdio>
    12 #include <fstream>
    13 #include <cstring>
    14 #include <iostream>
    15 #include <algorithm>
    16 using namespace std;
    17 
    18 int hash[3005];
    19 unsigned int
    20 BKDHash(const char *str) {
    21       unsigned int hash = 0, seed = 131;
    22 
    23     while (*str == '0') {
    24           str++;
    25     }
    26     while (*str) {
    27           hash = hash * seed + (*str++);
    28     }
    29 
    30     return hash & 0x7FFFFFFF;
    31 }
    32 
    33 int
    34 cmp(const void *x, const void *y) {
    35       return *(int*)x - *(int*)y;
    36 }
    37 
    38 int
    39 main(void) {
    40       int n;
    41     while (~scanf("%d", &n) && n) {
    42           for (int i = 0; i < n; i++) {
    43               char str[35];
    44             scanf("%s", str);
    45               hash[i] = BKDHash(str);
    46         }
    47         qsort(hash, n, sizeof(int), cmp);
    48         int ans = 1, cur = hash[0], cnt = 1;
    49         for (int i = 1; i < n; i++) {
    50               if (hash[i] == cur) {
    51                   cnt++;
    52                 if (cnt > ans) {
    53                       ans = cnt;
    54                 }
    55             } else {
    56                   cnt = 1;
    57                 cur = hash[i];
    58             }
    59         }
    60         printf("%d
    ", ans);
    61     }
    62 
    63     return 0;
    64 }
  • 相关阅读:
    C++官方文档-静态成员
    C++官方文档-this
    C++官方文档-运算符重载
    springboot-dokcer
    HDU 1073
    HDU 1070
    UVa 213
    HDU 1150
    POJ 1274
    POJ 2594
  • 原文地址:https://www.cnblogs.com/Stomach-ache/p/3726532.html
Copyright © 2011-2022 走看看