**hdu5495

来源:互联网 发布:股票数据分析流派 编辑:程序博客网 时间:2024/06/05 12:39

题目:

点击打开链接

题解:

a[i]和b[i]对应的值无论怎么移动都是一一对应的

目前想的还不是很明白,过两天想明白了过来更新

下面的代码超时

<pre name="code" class="html">#include <cstdio>#include <algorithm>#include <iostream>using namespace std; int a[100001]; int b[100001]; int c[100001]; int d[100001]; int t,n,x,ans;int main(){    cin>>t;    while(t--)    {        cin>>n;        for(int i=1;i<=n;i++)        {            cin>>a[i];            d[i]=0;        }        for(int i=1;i<=n;i++)        {            cin>>b[i];        }        for(int i=1;i<=n;i++)        {            c[a[i]]=b[i];        }        ans=n;        for(int i=1;i<=n;i++)        {            int x=i;            if(d[x]) continue;            if(c[x]!=x)            {                ans--;                while(!d[x])                {                    d[x]=1;                    x=c[x];                }            }        }        printf("%d\n",ans);    }}




害羞

0 0
原创粉丝点击