zoukankan      html  css  js  c++  java
  • hdu4847 kmp


    Chen, Adrian (November 7, 2013). “Doge Is An Ac- tually Good Internet Meme. Wow.”. Gawker. Retrieved November 22, 2013. 

    Doge is an Internet meme that became popular in 2013. The meme typically con- sists of a picture of a Shiba Inu dog ac- companied by multicolored text in Comic Sans MS font in the foreground. The text, representing a kind of internal monologue, is deliberately written in broken English, and usually contains the word “wow” and the phrases “such x”, “much x”, “many x”, “very x” and “so x”. 
     Kabosu, the Shiba Inu featured in the original meme, was first pictured in a 2010 blog post by Atsuko Sato, a Japanese kindergarten teacher. Afterwards, varia- tions of the pictures using overlaid Comic Sans text were posted from a Tumblr blog, Shiba Confessions. However, the use of the intentionally misspelled “doge” dates back to June 2005, when it was mentioned in an episode of Homestar Runners puppet series. 
     In August 2013, images of the meme were spammed on Reddit’s r/MURICA subreddit by 4chan’s random imageboard, /b/. A search of the term doge on Google Trends shows an explosion of popularity occurring in October 2013, and more so in the following month. By November 2013, the meme had become widespread on the Internet. Google later created a Doge Easter egg: when doge meme was entered into the YouTube search bar, all of the site’s text would be displayed in colorful Comic Sans, similar to the kind used by the meme. 
     The meme was ranked #12 on MTV’s list of “50 Things Pop Culture Had Us Giving Thanks For” in 2013. Io9 compared the internal dialog of the Shiba Inu dogs to lolcat-speak. The image most commonly associated with the meme is of a female Shiba Inu named Kabosu, taken from a Japanese blog documenting the dog’s daily activities. The spelling of doge has several variants, leading to debate on its actual pronunciation. On December 13, Doge was named the “top meme” of 2013 by Know Your Meme. 
     In December 2013, the Dogecoin was introduced as a new cryptocurrency, making it the first cryptocurrency to be based on an Internet meme; the viral phenomenon, along with usage of the Comic Sans MS typeface, gave it “the Internet density of a large star” according to Medium writer Quinn Norton. 
    In late December 2013, members of the U.S. Congress produced material in the meme’s style. Huffington Post commented that Doge was “killed” because of the Congress members’ usage of the meme. 
     By early 2014, Doge’s popularity was sustained by internet communities on social media, accompanied by the rapid growth and acceptance of Dogecoin. In April 2014, Doge experienced a second major media resurgence due to revelations of the Dogecoin community’s intent to sponsor Josh Wise in NASCAR and place a picture of the Shiba Inu on his vehicle. 

    —— Doge (meme). (2014, May 18). 
    In Wikipedia, The Free Encyclopedia. Retrieved 02:00, May 22, 2014, from 
    http://en.wikipedia.org/w/index.php?title=Doge_(meme)&oldid=609040691 

    Now, Doge wants to know how many words “doge” are there in a given article. Would you like to help Doge solve this problem?

    InputAn article that Doge wants to know. 
     The size of the article does not exceed 64KB. The article contains only ASCII characters.OutputPlease output the number of word “doge” (case- insensitive). Refer to the samples for more details.Sample Input

    adoge
    cutedo 
    yourge 
    blownDoge
    题意:好长啊啊啊啊啊啊啊啊,
    #include<map>
    #include<set>
    #include<cmath>
    #include<queue>
    #include<stack>
    #include<vector>
    #include<cstdio>
    #include<iomanip>
    #include<cstdlib>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define pi acos(-1)
    #define ll long long
    #define mod 10007
    #define ls l,m,rt<<1
    #define rs m+1,r,rt<<1|1
    
    using namespace std;
    
    const double g=10.0,eps=1e-9;
    const int N=400000+5,maxn=(1<<18)-1,inf=0x3f3f3f3f;
    
    int Next[N],slen,plen,ans=0;
    string str,ptr;
    
    void getnext()
    {
        int k=-1;
        Next[0]=-1;
        for(int i=1;i<slen;i++)
        {
            while(k>-1&&str[k+1]!=str[i])k=Next[k];
            if(str[k+1]==str[i])k++;
            Next[i]=k;
        }
    }
    void kmp()
    {
        int k=-1;
        for(int i=0;i<plen;i++)
        {
            while(k>-1&&str[k+1]!=ptr[i])k=Next[k];
            if(str[k+1]==ptr[i])k++;
            if(k==slen-1)
            {
                k=-1;
                ans++;
            }
        }
    }
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0);
     //   cout<<setiosflags(ios::fixed)<<setprecision(2);
        str="doge";
        slen=str.size();
        getnext();
        string s;
        while(getline(cin,s)){
            ptr="";
            for(int i=0;i<s.size();i++)
            {
                if(s[i]>='A'&&s[i]<='Z')s[i]=s[i]-'A'+'a';
                ptr+=s[i];
            }
            plen=ptr.size();
            kmp();
        }
        cout<<ans<<endl;
        return 0;
    }
    View Code
    还好只看了后面一段,就是找出一段话中的名狗doge(不区分大小写)
    题解:kmp一步到位,和刚开始有一题很像 lovelyDooge Wow! Such Dooooooooooooooge!!! D0ge dOge DOGE dogedoge

    Sample Output

    6
  • 相关阅读:
    Linux下动态库(.so)和静态库(.a) 的区别
    CTS、CLS、CLR
    ASP.NET简介及网页基础知识
    ASP.NET MVC中ActionResult的不同返回方式
    ADO.NET中的数据库帮助类
    ASP.NET MVC 方法View返回的两种方式
    使用win10 IIS 发布局域网网站
    ASP.NET MVC 给Action的参数赋值的方式
    ASP.NET MVC简单流程解释(传值方式)
    ASP.NET MVC 简介(附VS2019和VSCode版示例)
  • 原文地址:https://www.cnblogs.com/acjiumeng/p/6836099.html
Copyright © 2011-2022 走看看