Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:?code谁能给个数据测试,为什么错误!In Reply To:? Posted by:huicpc26 at 2005-08-31 23:45:56 > #include <iostream> > #include <string> > #include <stack> > using namespace std; > > long NextTreeIdentify(string t) > { > string s,t2,t001("001"); > s = t; > long res; > int node,i,posof0,posof001; > bool end = true; > for(i=0;i<=s.size()-3;i++) > { > t2 = s.substr(i,3); > if(t2.compare(t001)==0) > { > posof001 = i; > break; > } > } > end = true; > for(i=posof001+3;i<s.size();i++) > { > if(s[i] != '1') > { > end = false; > break; > } > } > > if(!end) > { > /* > s.erase(posof001+1,2); > posof0 = s.find_first_of("0",posof001+1); > s.insert(posof0+1,"1"); > s.insert(posof0+1,"0");*/ > s.replace(posof001,3,"0"); > posof0 = s.find_first_of("0",posof001+1); > s.replace(posof0,1,"001"); > } > else > { > s[0] = '0'; > for(i=1;i<s.size();i++) > { > if(i%2 == 0) > s[i] = '1'; > else > s[i] = '0'; > } > } > i = s.size()-1; > res = 0; > while(i>=2) > { > node = s[i]-'0'; > if(node == 1) > res += node<<i; > i--; > } > return res; > } > > void doRun() > { > long res,n,t; > int node; > stack<int> tree; > string s; > scanf("%ld",&n); > if(n == 0||n == 4) > { > res = n; > } > else > { > t = n; > while(1) > { > node = t % 2; > tree.push(node); > if (t<=1)break; > t>>=1; > } > if(tree.size()>30) > return; > while(!tree.empty()) > { > s.insert(0,(char*)(tree.top()+'0')); > tree.pop(); > } > res = NextTreeIdentify(s); > } > printf("%ld\n",res); > } > > > int main() > { > //while(1) > doRun(); > return 0; > } > Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator