hdu 3460 Ancient Printer

答案=字典树节点个数+单词个数-最长的单词的长度。表示不会推倒。看了大牛博客。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;

struct shu{ int nn[27]; }node[500010];
int ii, i, n, m, zz, tott, hh;
char s[10000];

int main()
{ 

    while (~scanf("%d", &n))
    {
        for (i = 0; i <= 500000; i++)
            memset(node[i].nn, -1, sizeof(node[i].nn));
        tott = 1; hh = -1;
        for (ii = 0; ii < n; ii++)
        {
            scanf("%s", s);
            int len = strlen(s);
            if (len>hh) hh = len;
            zz = 0;
            for (i = 0; s[i]; i++)
            {
                if (node[zz].nn[s[i] - ‘a‘] == -1)
                {
                    node[zz].nn[s[i] - ‘a‘] = tott;
                    tott++;
                }
                zz = node[zz].nn[s[i] - ‘a‘];
            }
        }
        printf("%d\n", (tott - 1) * 2 + n - hh);
    }
    return 0;
}
时间: 2025-01-17 21:10:53

hdu 3460 Ancient Printer的相关文章

Ancient Printer HDU - 3460 贪心+字典树

The contest is beginning! While preparing the contest, iSea wanted to print the teams' names separately on a single paper. Unfortunately, what iSea could find was only an ancient printer: so ancient that you can't believe it, it only had three kinds

Ancient Printer(tire树)

Ancient Printer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 1511    Accepted Submission(s): 748 Problem Description The contest is beginning! While preparing the contest, iSea wanted to pri

HDU 5546 Ancient Go DFS

Ancient Go Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 1732    Accepted Submission(s): 552 Problem Description Yu Zhou likes to play Go with Su Lu. From the historical research, we found tha

Ancient Printer

为找规律题  结果为   节点数*2-最长字段+字段个数 结点不能设置为0   与判断条件相冲突 #include<bits/stdc++.h> using namespace std; int trie[400100][26]={0}; int sum[400100]; char ans[50005][30];//这里数组开小了导致一直wa int root=0; int pos; void insert1(char *s) { int root=0; for(int i=0;i<st

ACM总结——dp专辑(转)

感谢博主——      http://blog.csdn.net/cc_again?viewmode=list       ----------  Accagain  2014年5月15日 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少,多元性强,主要考察思维能力.建模抽象能力.灵活度. 本人动态规划博客地址:http://blog.csdn.net/cc_again/article/category/1261899 ***********************

【DP专辑】ACM动态规划总结

转载请注明出处,谢谢.   http://blog.csdn.net/cc_again?viewmode=list          ----------  Accagain  2014年5月15日 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少,多元性强,主要考察思维能力.建模抽象能力.灵活度. 本人动态规划博客地址:http://blog.csdn.net/cc_again/article/category/1261899 ******************

(转)dp动态规划分类详解

dp动态规划分类详解 转自:http://blog.csdn.NET/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少,多元性强,主要考察思维能力.建模抽象能力.灵活度. ****************************************************************************************** 动态规划(英语:Dynamic programm

这个是转的。学完就删_(:з」∠)_

原文链接:http://blog.csdn.net/cc_again/article/details/25866971 好多dp:http://blog.csdn.net/cc_again/article/category/1261899 一.简单基础dp 这类dp主要是一些状态比较容易表示,转移方程比较好想,问题比较基本常见的.主要包括递推.背包.LIS(最长递增序列),LCS(最长公共子序列),下面针对这几种类型,推荐一下比较好的学习资料和题目. 1.递推: 递推一般形式比较单一,从前往后,

hdu 1972.Printer Queue 解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1972 题目意思:需要模拟打印机打印.打印机里面有一些 job,每个job被赋予1-9的其中一个值,越大表示优先级越高,越早被打印.job这个队列是会向前推进的,如果排在最前面的job优先级最高,那么才打印,否则就把这个job放到队列最后.问给出 m 这个位置的job要经过多长时间才被打印. 规定每次打印时间为一分钟,移动 job到队列最后不占时间. 练开优先队列就继续吧---不过这题不是咯. 仅仅用