• p1364


    将它作为我的树的练习题来做的,根本没有想其他的什么方法。

    先去看书上的模板,竟然用到了指针啊?干脆的什么都看不懂。于是就苦苦回忆寒假学的东西,经历了无数苦难波折后写下了一个非常非常对的代码(在自己的电脑上运行答案都对):

    int end=27;
    int i,f,ans=0,boyt,now;
    string s;
    struct lianbiao
    {
        char n;
        int boy[27];
    }trie[60000];
    int main()
    {
    //freopen("123.in","r",stdin);
        while(cin>>s)
        {
            now=int(s[0]-64);
            trie[now].n=s[0];
            for(f=1;f<s.size();f++)
            {
                boyt=int(s[f])-64;
                if(trie[trie[now].boy[boyt]].n==s[f])//已经有了
                {
                    now=trie[now].boy[boyt];
                }
                else
                {
                    trie[end].n=s[f];
                    trie[now].boy[boyt]=end;
                    now=end;
                    end++;
                }
            }
        }
        for(i=1;i<=60000;i++)
            if(trie[i].n!=0)
                ans++;
        cout<<ans+1;
        return 0;
    }
    View Code

    但是,这份代码交到oj上是全错的,因为最后一步:ans不需要+1,我也不知道为什么。

    还有一件事,end在哪个哪个版本中是关键字,要少用,忘了学长说了啥了,总之就orz

  • 相关阅读:
    KVCKVO
    音频
    静态库
    百度地图API
    CALayer
    触摸事件
    iOS中打电话、打开网址、发邮件、发短信等
    NSURLSession网络接口
    Quartz2D常见图形的绘制:线条、多边形、圆
    通知中心(NSNotificationCenter)
  • 原文地址:https://www.cnblogs.com/qywyt/p/9063250.html
Copyright © 2020-2023  润新知