poj Eeny Meeny Moo 我用链表暴力超时了!!!

 话说我就单纯的想练一下链表,没想明白每次暴力的时候都要申请空间,很浪费时间,以至于我超时,所以寡断打表了,下面是我暴力打表的代码!!!

#include<iostream>
using namespace std;
struct node
{
    int num;
    node *next;
};
node *head,*p,h;  
int main()
{
    int n;
    for(int n=3;n<=150;n++)
    {   
        int temp;    
        for(int i=2;i<10000;i++)
        {   
            h.next=NULL;
            head=&h;
            p=head;
            for(int po=1;po<=n;po++)
            {   
                p->next=(struct node*)malloc(sizeof(struct node));
                p=p->next;                
                p->num=po;
                if(po!=n)
                p->next=NULL;
                else
                p->next=head->next->next;
                
            }
            p=head;                   
            p->next=p->next->next;
            p=p->next;
            temp=i;
 //           cout<<i;
//            system("pause");
            while(p!=p->next)
            {   
                for(int j=1;j<=temp-2;j++)
                p=p->next; 
                
 //               cout<<p->next->num<<" "<<endl;
                p->next=p->next->next; 
                if(temp!=1)
                p=p->next;            
            }
            if(p->num==2)
            {
                printf(",%d",i);
                break;
            }
        }
    }
    system("pause");
    return 0;
}
                
            


 

#include<iostream>
using namespace std;
int a[180]={1,1,1,2,5,2,4,3,11,2,3,8,16,4,21,6,5,2,11,20,34,8,15,10,7,13,11,13,45,18,23,8,3,2,25,75,42,13,5,23,13,50,16,18,89,38,8,39,30,29,38,7,45,23,137,46,63,17,48,5,46,34,140,33,39,2,28,29,79,33,48,3,10,46,120,6,37,17,8,44,15,160,20,35,144,104,179,153,24,8,265,19,9,62,7,139,19,44,93,182,27,158,185,193,17,82,3,11,43,55,21,41,146,29,80,59,8,29,66,19,160,59,28,129,127,120,72,45,157,2,63,127,81,318,513,98,28,32,231,236,411,26,45,5,303,228,66,9,205,65,39};
int main()
{
    int n;
    while(cin>>n,n)
    cout<<a[n]<<endl;
    return 0;
}


 

你可能感兴趣的:(poj Eeny Meeny Moo 我用链表暴力超时了!!!)