CF761B Dasha and friends 题解
题目大意:给定两个环,判断它们是否相同。
此题数据量并不大 , 因此可以使用暴力的方式:
通过旋转 环,每次将环上的第 个元素移到第 个位置(最后一个元素移到第一个元素的位置),并将旋转完毕后的 环与 环相比较,即可得出正解。
代码:
#include<bits/stdc++.h>
using namespace std;
int n,l,x,t;
bool a[100],b[100],flag; //AB两环 (bool型,1表示有障碍物,0表示没有障碍物)
int main()
{
cin>>n>>l;
for(int i=1;i<=n;i++) //输入A,B两环
{
cin>>x;
a[x]=true;
}
for(int i=1;i<=n;i++)
{
cin>>x;
b[x]=true;
}
for(int i=1;i<=l;i++)
{
t=a[l-1]; //将最后一个元素存下来
for(int j=l-1;j>=1;j--) //将第j个元素移到j+1的位置
{
a[j]=a[j-1];
}
a[0]=t; //把最后一个元素存到第一个位置
flag=true;
for(int j=0;j<l;j++) //判断A环是否与B环相同
{
if(a[j]!=b[j]) flag=false;
}
if(flag)
{
cout<<"YES"<<endl; //如果相同输出"YES"
return 0;
}
}
cout<<"NO"<<endl; //如果转了一圈还没有重合输出"NO"
return 0;
}