UVA-299 Train Swapping

来源:互联网 发布:天天炫舞抽坐骑软件 编辑:程序博客网 时间:2024/05/01 16:43

2016-07-15

UVA - 299 Train Swapping

题目大意:交换相邻车厢使其最终编号从小到大排列,求要交换几次。

解题思路:冒泡排序加个统计次数的变量。

注意:一开始用字符数组进行数字的读取,结果WA,才注意到用字符数组不能读两位以上的数字,后来改用整形数组才AC。

#include <iostream>using namespace std;int num = 0;int  s[1000];void swap(int &a, int &b) {    int t;    t = a;    a = b;    b = t;}int main () {    int n;    cin >> n;    while ( n-- ) {        num = 0;        int m;        cin >> m;        for (int i = 0; i < m; i++)             cin >> s[i];        for (int i = 0; i < m; i++) {            for (int j = 0; i+j < m-1; j++) {                if ( s[j] > s[j+1] ) {                    swap(s[j],s[j+1]);                    num++;                }            }        }        cout << "Optimal train swapping takes " << num << " swaps." << endl;    }    return 0;}


1 0
原创粉丝点击