| ||||||||||
| 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 | |||||||||
给上几组数据试试嘛!!!!!!!!!!!In Reply To:这不是开玩笑呢,问题这么弱,而我的算法这么强,居然过不了?(内附代码) 什么样子的数据不行? Posted by:forceil at 2007-04-05 16:19:43 > #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