AcWing 1921. 重新排列奶牛
原题链接
简单
作者:
垫底抽風
,
2022-04-21 21:12:54
,
所有人可见
,
阅读 319
参考文献
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int a[101],b[101],f[101],n,i,j,c=0,s=-1;
bool ok[101];
int dfs(int x,int step)
{
if(ok[x]==1)return step;
ok[x]=1;
return dfs(f[x],step+1);
}
int main()
{
cin>>n;
for(i=1;i<=n;i++)cin>>a[i];
for(i=1;i<=n;i++)cin>>b[i];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i]==b[j])f[i]=j;
for(i=1;i<=n;i++){
if(f[i]==i||ok[i])continue;
s=max(s,dfs(i,0));
c++;
}
cout<<c<<" "<<s;
}