1
解決の背後にあるロジックをproblemに取得できません。誰かが私にそれの働きを説明することができれば、とても感謝しています。回転アレイ(Larray hackerrank)
ソリューション:
#include <bits/stdc++.h>
using namespace std;
const int N=1509;
int n;
int a[N];
void input(){
scanf("%d",&n);
for (int i=1;i<=n;i++)
scanf("%d",&a[i]);
}
void sol(){
int K=1;
for (int i=1;i<=n;i++)
for (int j=i+1;j<=n;j++)
K^=(a[i]>a[j]);
if (K) printf("YES\n");
else printf("NO\n");
}
int main() {
int test;
scanf("%d",&test);
while (test--){
input();
sol();
}
return 0;
}
私は最終的には「K」の値が(それは順番を並べ替えに配置することができるかどうかをIE)の答えを決定され、各順列をXORした後、どのように取得することはできませんよ?
あなたのための障害物は何ですか? –
私は各順列をxoringした後、最終的に 'k'の値が答えを決定している(つまり、ソート順に並べることができるかどうか)ことができませんでしたか? –
正確な質問を投稿に追加してください([編集])。誰もがすべてのコメントを読むわけではありません。 –