仿真文件
实现每5个单位翻转一次进行样例测试
`timescale 1ns / 1psmodule clock_tb();reg clk;
wire clk_o;hz1 u(clk,clk_o);initial clk = 1;always #(5) clk = ~clk;endmodule
`timescale 1ns / 1psmodule 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 beginreset =0;#9;reset = 1;end
endmodule
#include<iostream>
#include<stack>
#include<vector>
#include<map>
#include<queue>
using namespace std;
vector<vector<int>>arr;
int a[100];
int main() {int n, t;cin >> n;for (int i = 1; i <= n; i++) {cin >> t;if (arr.empty()) {vector<int>w;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()) {vector<int>w;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<iostream>
#include<stack>
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;
}