zoukankan      html  css  js  c++  java
  • hdu 2526 浪漫手机

    题意:

           上一行的3个音符决定下一行的1个音符

    题解:

           查找与替换

       选择的输出的保存方式

    #include<stdio.h>
    #include<string.h>
    #include<vector>
    #include<map>
    #include<string>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    string s1,s2;
    map<string,char>ma;
    char a[5];
    int main()
    {
        int _case,m;
        int x,y;
        int i,j,k;
        scanf("%d",&_case);
        while(_case--)
        {
            scanf("%d",&m);
            getchar();
            ma.clear();
            for(i=0; i<8; i++)
            {
                memset(a,0,sizeof(a));
                scanf("%s %c",a,&y);
                //x=0;
                /*for(j=0;j<strlen(a);j++)
                {
                    x=x*10+a[j]-'0';
                }*/
                //m[x]=y;
                //m.insert(make_pair(x,y));
                ma[a]=y;
            }
            getchar();
            s1.clear();
            s2.clear();
            cin>>s1;
            cout<<s1<<endl;
            s1.insert(s1.begin(),'0');
            s1.push_back('0');
            //cout<<s1<<endl;
            for(x=1; x<m; x++)
            {
                if(x&1)
                {
                    for(i=0; i<s1.size()-2; i++)
                    {
                        memset(a,0,sizeof(a));
                        for(j=i,k=0; j<i+3; j++,k++)
                        {
                            a[k]=s1[j];
                        }
                        //cout<<a;//<<endl
                        map<string,char>::iterator it=ma.find(a);
                        s2+=it->second;
                        printf("%c",it->second);
                    }
                    s1.clear();
                    s2.insert(s2.begin(),'0');
                    s2.push_back('0');
                }
                else
                {
                    for(i=0; i<s2.size()-2; i++)
                    {
                        memset(a,0,sizeof(a));
                        for(j=i,k=0; j<i+3; j++,k++)
                        {
                            a[k]=s2[j];
                        }
                        //cout<<a;//<<endl
                        map<string,char>::iterator it=ma.find(a);
                        s1+=it->second;
                        printf("%c",it->second);
                    }
                    s2.clear();
                    s1.insert(s1.begin(),'0');
                    s1.push_back('0');
                }
                printf("\n");
            }
        }
        return 0;
    }
  • 相关阅读:
    JAVA周二学习总结
    2019春总结作业
    第十二周作业
    第十一周作业
    第十周作业
    第九周作业
    第八周作业
    第七周作业
    第六周作业
    第四周课程总结&试验报告(二)
  • 原文地址:https://www.cnblogs.com/XDJjy/p/3108577.html
Copyright © 2011-2022 走看看