Day 0x13 UVa299 Train Swapping

题意

  • 输入火车的排列状态,输出需要交换多少次以排好顺序
  • 需要注意的有:
    1. 输入第一行一个整数 N 代表测资数
    2. 每笔测资第一行 L 代表火车长度 (0 ≤ L ≤ 50)
    3. 每次交换只能对调相邻两车厢
    4. 输出格式
      • Optimal train swapping takes S swaps.

解法

  • 输入测资数 N 并用 while 回圈重复,再读每笔测资长度 L 并存入整数阵列中
    int N;
    int L;
    int train[50] = {0};
    
    scanf("%d", &N);        //number of case
    
    while(N--){
    
        scanf("%d", &L);    //length of train
    
        for(i = 0; i < L; i++){
            scanf("%d", &train[i]);
        }
        ...
    }
    
  • 因为 L 的范围很小,所以用泡沫排序的概念计算交换次数即可 (一星题嘛 XD)
    int count = 0;
    
    for(i = 0; i < L - 1; i++){
        for(j = 0; j < L - 1 - i; j++){
            if(train[j] > train[j + 1]){
                temp = train[j];
                train[j] = train[j + 1];
                train[j + 1] = temp;
                count++;
            }
        }
    }
    
    printf("Optimal train swapping takes %d swaps.\n", count);
    
  • C code
    #include<stdio.h>
    
    int main(){
    
        int N;
        int L;
        int train[50] = {0};
        int i, j;
        int temp;
    
        scanf("%d", &N);        //number of case
    
        while(N--){
    
            scanf("%d", &L);    //length of train
    
            int count = 0;
    
            for(i = 0; i < L; i++){
                scanf("%d", &train[i]);
            }
    
            for(i = 0; i < L - 1; i++){
                for(j = 0; j < L - 1 - i; j++){
                    if(train[j] > train[j + 1]){
                        temp = train[j];
                        train[j] = train[j + 1];
                        train[j + 1] = temp;
                        count++;
                    }
                }
            }
    
            printf("Optimal train swapping takes %d swaps.\n", count);
    
        }
    
        return 0;
    }
    

<<:  30天零负担轻松学会制作APP介面及设计【DAY 11】

>>:  Day 07:我今天想不到标题之整合 tmux 和 zsh

Day 5 - 类神经网路可做什麽

假设 y是结果(如股票价格) , x是变数(如进料成本,薪资成本......等) , 以分类或回归分...

JAVA - JAVA Log4j 专门用於 Java 语言的日志记录工具

JAVA - JAVA Log4j 专门用於 Java 语言的日志记录工具 参考资料 参考资料1:L...

Unity自主学习(十四):认识Unity介面(5)

昨天我们了解了游戏执行区以及场景编辑区中"Main Camera"物件对其的影响...

DAY26-ASP.NET 加入RWD响应式网页 事前准备(先了解rwd)

先说甚麽是RWD响应式网页 有些人会叫他自适应网页设计、回应式网页设计、对应式网页设计 其实都一样 ...

Day19 不使用JSX开发React的方式

当你在开发时若不想使用编译器的话,不使用JSX也是可以开发react的。 每个JSX元素都只是呼叫 ...