NC238589. 置换
描述
输入描述
第一行一个数表示数据组数。接下来有组数据,每组数据:
第一行一个正整数数,接下来一行个正整数表示,接下来一行个正整数表示。
保证给出的都是合法的置换。
输出描述
对于每组数据,一行输出(大小写敏感)表示是否存在符合条件的。
示例1
输入:
2 5 1 3 2 5 4 1 2 3 4 5 4 1 2 3 4 1 2 4 3
输出:
Yes No
C++ 解法, 执行用时: 681ms, 内存消耗: 1224K, 提交时间: 2022-07-19 19:37:14
#include<bits/stdc++.h> using namespace std; int s[1000050]; int ss[1000050]; int main(){ int t; cin>>t; while(t--){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>s[i]; } for(int i=1;i<=n;i++){ cin>>ss[i]; } int f=0; for(int i=1;i<=n;i++){ if(s[s[i]]==i&&s[s[i]]!=ss[i]){ f=1; break; } } cout<<(f?"No":"Yes")<<endl; } return 0; }