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

我自己想出来的。。。。。。同样的思路,有一小点点不同

Posted by jiyanmoyu at 2009-08-12 19:37:04 on Problem 1674
In Reply To:Re:算法!查了老长时间的资料才查出来的!不容易呀! Posted by:shengye_205 at 2007-08-18 17:26:44
也是打出它所有的完全错序环,每个环要交换的次数为数字数-1,各个环互不影响
具体代码

#include<stdio.h>
#include<cstring>
int main()
{
    const int maxN=10002;
    int data[maxN];
    bool sorted[maxN];
    int t,i,j,k,n;
    int times;
    int start,next;
    scanf("%d",&t);
    for(i=0;i<t;++i)
    {
        times=0;
        scanf("%d",&n);
        for(j=1;j<=n;++j)
            scanf("%d",data+j);
        memset(sorted,false,sizeof(sorted));
        for(j=1;j<=n;++j)
        {
            if(!sorted[j])
            {
               sorted[j]=true;
               start=j;
               next=data[j];
               while(next!=start)
               {
                     sorted[next]=true;
                     ++times;
                     next=data[next];
               }
            }
        }
        printf("%d\n",times);
    }
    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