码迷,mamicode.com
首页 > 其他好文 > 详细

STL || HDU 1894 String Compare

时间:2018-02-03 19:59:26      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:ret   size   soft   for   microsoft   stream   std   另一个   while   

如果一个词包含再另一个词的前面(前缀),是一对前缀,求一共有多少对
*解法:STL万岁
#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std;
#define SZ 50010
string a[SZ];
int main()
{
    int T;
    scanf("%d", &T);
    while(T--)
    {
        int n, ans = 0;
        scanf("%d", &n);
        for(int i = 0; i < n; i++)
            cin >> a[i];
        sort(a, a + n);
        for(int i = 0; i < n - 1; i++)
        {
            for(int j = i + 1; j < n; j++)
            {
                if(a[i].size() == a[j].size()) break;
                if(a[i].compare(0, a[i].size(), a[j], 0, a[i].size()) == 0) ans++;
            }
        }
        if(ans > 11519) ans = ans % 11519;
        printf("%d\n", ans);
    }
    return 0;
}

 

STL || HDU 1894 String Compare

标签:ret   size   soft   for   microsoft   stream   std   另一个   while   

原文地址:https://www.cnblogs.com/pinkglightning/p/8410423.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!