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 |
这不是开玩笑呢,问题这么弱,而我的算法这么强,居然过不了?(内附代码) 什么样子的数据不行?#include <iostream.h> #include <stdlib.h> #include <memory.h> int left=0; int temp[21]; int Data[21]; void Go(int i,int mod); int main(int argc, char *argv[]) { int Times=0; cin>>Times; while(Times-->0) { cin>>left; memset(temp,0,sizeof(temp)); memset(Data,0,sizeof(Data)); int i=0; if(left%3==1) { left/=3; Data[0]=1; Go(i+1,left%3); } else if(left%3==2) { left/=3; temp[0]=1; Go(i+1,left%3+1); } else { left/=3; Go(i+1,left%3); } int max=1; for(i=0;i<20;i++) { if(temp[i]!=0) temp[i]=max; if(Data[i]!=0) Data[i]=max; max*=3; } max=0; for(i=0;i<20;i++) { if(temp[i]!=0) { if(max==1) cout<<","; cout<<temp[i]; max=1; } } if(max!=1) cout<<"empty"; cout<<" "; max=0; for(i=0;i<20;i++) { if(Data[i]!=0) { if(max==1) cout<<","; cout<<Data[i]; max=1; } } if(max==0) cout<<"empty"; cout<<endl; } return EXIT_SUCCESS; } void Go(int i,int mod) { if(left==0) { if(mod==1) Data[i]=1; if(mod==2) { Data[i+1]=1; temp[i]=1; } return ; } if(mod==1) { Data[i]=1; left/=3; Go(i+1,left%3); } else if(mod==2) { temp[i]=1; left/=3; Go(i+1,left%3+1); } else { left/=3; Go(i+1,left%3); } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator