topcoder srm 144 div1 BinaryCode(300 points)

这道题作为300分的水题,直接暴力就可以过了,题意是给你一个01串s,可以通过t[i] =s[i-1] + s[i]+ s[i+1],得到一个新串t,

其中t[0] = s[0] + s[1],t[n-1] = t[n-1]+t[n-2]。我们现在输入的是串t,要求出串s。

下面贴代码:


#include 
#include 
#include 
#include 
using namespace std;

class BinaryCode
{
        private:
                vector data[50];
        public:
                vector decode(string val)
                {
                        memset(data,0,sizeof(data));
                        inits(val);
                        string res;
                        vector buf;
                        int k;
                        for(int i=0;idata[i].push_back("000");
                                else if(val[i] == '1')
                                {
                                        if(i!=val.length()-1)
                                                data[i].push_back("001");
                                        data[i].push_back("010");
                                        if(i!=0)
                                                data[i].push_back("100");
                                }
                                else if(val[i] == '2')
                                {
                                        if(i!=0)
                                                data[i].push_back("110");
                                        if(i!=val.length()-1 && i != 0)
                                                data[i].push_back("101");
                                        if(i!=val.length()-1)
                                                data[i].push_back("011");
                                }
                                else if(i!=val.length()-1 && i!=0)
                                        data[i].push_back("111");
                }
                bool cmp(string s1,string s2)
                {
                        if(s1[s1.length()-2] == s2[0] && s1[s1.length()-1] == s2[1])
                                return true;
                        return false;
                }
};
 /*
int main()
{
        BinaryCode a;
        string s;
        cin >> s;
        vector t = a.decode(s);
        cout << t[0] << " " << t[1] << endl;
        return 0;
}
*/


你可能感兴趣的:(topcoder srm 144 div1 BinaryCode(300 points))