CTU2107-H-Dark Ride with Monsters
Posted kuroko-ghh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CTU2107-H-Dark Ride with Monsters相关的知识,希望对你有一定的参考价值。
题意:一串数字从两两交换使最后的顺序能从1~N问最少需要交换几次
思路:从第一个数字出发进行位置交换直到最后数字出现在正确的位置上,记下每个位置数字需要交换的次数最后求和。
#include<bits/stdc++.h> using namespace std; const int maxn=2*1e5+10; int N; int a[maxn],b[maxn]; int main() { //freopen("in.txt","r",stdin); int i; while(~scanf("%d",&N)) { for(i=1; i<=N; i++)scanf("%d",&a[i]); int ans=0; for(int i=1; i<=N; i++) { int cnt=0; while(a[i]!=i) { swap(a[a[i]],a[i]); cnt++; } ans+=cnt; } printf("%d ",ans); } return 0; }
以上是关于CTU2107-H-Dark Ride with Monsters的主要内容,如果未能解决你的问题,请参考以下文章
CTU Open Contest 2017 Go Northwest!(思维题+map)
Gym - 101670G Ice cream samples(CTU Open Contest 2017 尺取法)