Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

1833 为什么会超时,请寻位大侠帮忙解释下,贴上我的代码

Posted by prog2012 at 2012-01-06 11:15:01
#include <iostream>
#include<algorithm>

using namespace std;
 
int main()
{
    int a[1024];
    int m,n,k,ii=0;
    int i,j;  
    
    cin>>m;
 
    while(m-->0)
    {   
       cin>>n>>k;
       for(j=0; j<n;j++)
       {
           cin>>a[j];
       }
       
       if(n==1) { cout<<1<<endl; continue;}
       if(n==3) k=k%6;
       if(n==2) k=k%2;
       while(k>0)  //计算下k个排列数 
       {
           
           for(i=n-1;i>0;i--)         
              if(a[i-1]<a[i]) break;
              
           if(i>0)
           { 
              int pos=i;
              for(j=i+1;j<n;j++) 
              {   if(a[j]>a[i-1])
                  { 
                      if(a[j]<a[pos]) pos=j;
                  }
                 else break;       
              }    
              swap(a[i-1],a[pos]);
           } 
           sort(a+i,a+n); 
           if(n-i>=4)
           {
               if(k>=24) { k=k-24; swap(a[n-4],a[n-1]);swap(a[n-3],a[n-2]);}
               else if(k>=6){ k=k-6;swap(a[n-1],a[n-3]);}
               else if(k>=2){ k=k-2;swap(a[n-1],a[n-2]);}
               else k--;
           }     
           else if(n-i==3)
           {
               if(k>=6){k=k-6;swap(a[n-1],a[n-3]);}
               else if(k>=2) {k=k-2;swap(a[n-1],a[n-2]);}
               else k--;
           }    
           else if(n-i==2)
           {
               if(k>=2) {k=k-2;swap(a[n-1],a[n-2]);}
               else k--;
           }   
           else k--;        
       }    
       for(j=0;j<n;j++)
       {
           cout<<a[j]<<" ";
       }
       cout<<endl;     
    }
      
    return 0;
} 

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator