麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

1067. Sort with Swap(0,*) (25)-(難)

2019-11-14 12:16:52
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Given any permutation of the numbers {0, 1, 2,…, N-1}, it is easy to sort them in increasing order. But what if Swap(0, *) is the ONLY Operation that is allowed to use? For example, to sort {4, 0, 2, 1, 3} we may apply the swap operations in the following way:

Swap(0, 1) => {4, 1, 2, 0, 3} Swap(0, 3) => {4, 1, 2, 3, 0} Swap(0, 4) => {0, 1, 2, 3, 4}

Now you are asked to find the minimum number of swaps need to sort the given permutation of the first N nonnegative integers.

Input Specification:

Each input file contains one test case, which gives a positive N (<=105) followed by a permutation sequence of {0, 1, …, N-1}. All the numbers in a line are separated by a space.

Output Specification:

For each case, simply PRint in a line the minimum number of swaps need to sort the given permutation.

Sample Input: 10 3 5 7 2 6 4 9 0 8 1 Sample Output: 9 算法思想:如果數(shù)字0當(dāng)前在i號(hào)位上,則找到數(shù)字i當(dāng)前所處的位置,然后把0與i進(jìn)行交換則可以使有效交換增大 當(dāng)0處于0號(hào)位置上時(shí),使0與一個(gè)不在本位上的數(shù)交換,可以使無(wú)效交換次數(shù)最小

#include<cstdio>#include<algorithm>using namespace std;const int maxn=100010;int pos[maxn];int main(){ int n; scanf("%d",&n); int left=n-1,num;//left存放除零以外不在本位上的數(shù)的個(gè)數(shù) ,也即有效交換次數(shù) for(int i=0;i<n;i++){ scanf("%d",&num); pos[num]=i; if(num==pos[num]&&num!=0) left--; } int ans=0; int k=1; while(left>0){ if(pos[0]==0){ while(k<n){ if(pos[k]!=k){ swap(pos[0],pos[k]);//當(dāng)0元素在0位置時(shí),使0元素與不在本位上的數(shù)交換,該交換為無(wú)效交換 ans++; break; } k++; } } while(pos[0]!=0){ swap(pos[0],pos[pos[0]]);//將pos[0]元素與0元素交換,使pos[0]元素回到其本位上,該交換是有效交換 ans++; //進(jìn)行一次有效交換left減1 left--; } } printf("%d/n",ans); return 0;}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: av免费在线免费观看 | 中文字幕在线观看1 | 万圣街在线观看免费完整版 | 久久精品亚洲欧美日韩精品中文字幕 | 国产成人精品一区二区三区电影 | 插插操| 成年免费观看视频 | av电影在线播放 | 亚洲精品aa | 成人av一区二区免费播放 | 精品国产一区二区三区四区阿崩 | 中文字幕在线一 | 人人做人人看 | 孕妇体内谢精满日本电影 | 毛片大全在线观看 | 一起草av在线 | 羞羞电影在线观看www | 久久久久久久一区二区 | 超碰97人| 毛片一级免费看 | 亚洲成人第一页 | 久久久久成人免费 | 202z中文字幕第一页 | 黄色成人短视频 | 国产五区 | hdjapanesemassagehd日本 | 一区二区三区在线观看av | 高清国产在线 | 92看片淫黄大片一级 | 免费观看黄色一级视频 | 亚洲综人网 | 精品中文视频 | 国产精品一区二区三区99 | 久久久国产一区二区三区 | 国产精品成人一区二区三区电影毛片 | 龙的两根好大拔不出去h | 在线影院av| 日韩精品久久久久久久电影99爱 | 欧美日韩在线视频一区 | 一级网站| 一本色道久久99精品综合蜜臀 |