10.25一些旧代码

仿真文件 

实现每5个单位翻转一次进行样例测试

`timescale 1ns / 1ps

module clock_tb(

    );
    reg clk;
wire  clk_o;
 hz1 u(clk,clk_o);
 
 initial clk = 1;
 always #(5) clk = ~clk;
 
endmodule
`timescale 1ns / 1ps

module final_tb( );
reg clk;//开关,开时复位
reg reset;
wire[6:0]show;//表示怎么亮
wire[3:0]dn0;//表示4个数码管哪个亮
wire[7:0] hour;//表示下面LED的情况

total u(clk,reset,show,dn0,hour);
initial clk = 1;
always #(5) clk = ~clk;

initial begin
    reset =0;
    #9;
    reset = 1;
    

end
endmodule
#include
#include
#include
#include
#include
using namespace std;
vector>arr;
int a[100];
int main() {
    int n, t;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> t;
        if (arr.empty()) {
            vectorw;
            w.push_back(t);
            arr.push_back(w);
        }
        else {
            int j = 0;
            for (; j < arr.size(); j++) {
                if (t < arr[j].back()) {
                    arr[j].push_back(t);
                    break;
                }
            }
            if (j == arr.size()) {
                vectorw;
                w.push_back(t);
                arr.push_back(w);
            }
        }
    }
    for (int i = 0; i < arr.size(); i++) {
        if (arr[i].back() == 1) {
            for (int j = 0; j < arr[i].size(); j++) {
                cout << arr[i][j] << " ";
            }
            cout << endl;
            cout << arr[i].size();
            return 0;
        }
    }
    return 0;
}

PTA列车重拍

原 

#include
#include
using namespace std;
//遇到一个数时,如果比已知的都大,那就新开一个
//如果比已知的小,就应该接在最接近的下面
// 类似于蜘蛛纸牌
// 
// 
//最后是要输出1号所在的队列中元素,1号就是最后的。
//应该有前驱指针
//最坏情况是正序,即123……
//
// 用结构体数组,每个元素记录它前一个元素
//
int arr[100];//记录当前各自队列的末尾元素
int p = 1;//p表示当前需要的轨道数
int n, t;
struct node {
    int value;
    int pre;
}ar[100];
//这个就代表列车,不应该把列车
int maxa() {//返回当前各队列的末尾元素的最大值
    int ma = arr[1];
    for (int i = 1; i <= p; i++) {
        if (arr[i] >= ma) {
            ma = arr[i];
        }
    }
    return ma;
}
int app(int num) {//找到当前队列中末尾最接近Num的队列,并返回其队列下标
    int mi = 100, w = 1;//mi表示当前最小的插值,w表示其所位于的队列编号
    for (int i = 1; i <= p; i++) {
        if (arr[i] > num && arr[i] - num <= mi) {
            w = i;
            mi = arr[i] - num;
        }
    }
    return w;
}
bool ok = false;
int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> t;
        if (p == 1 && !ok) {
            arr[p] = t;
            ok = true;
        }
        else if (t > maxa()) {
            p++;
            arr[p] = t;
        }
        else {
            ar[t].pre = arr[app(t)];
            arr[app(t)] = t;
        }
    }
    int i = 1;
    int co[100];
    int cnt = 1;
    co[cnt++] = 1;
    while (ar[i].pre != 0) {
        co[cnt++] = ar[i].pre;
        i = ar[i].pre;
    }
    for (int j = cnt - 1; j >= 1; j--) {
        if (j != 1) { cout << co[j] << " "; }
        else { cout << co[j] << endl; }
    }
    cout << p;
    cout << endl;
    return 0;
}

你可能感兴趣的:(作业思路中转站,fpga开发,排序算法,算法)