车皮划痕怎么修复(车皮)

您好,今天小编胡舒来为大家解答以上的问题。车皮划痕怎么修复,车皮相信很多小伙伴还不知道,现在让我们一起来看看吧!
1、OK, 按照你说的堆栈结构, 那么就是5种调度结果。
2、加上一种没有调度的排序1,2,3. 其实它也可以看作是一种调度结果。
3、1进入调度室,又出来;2进入,又出来;3进入又出来。
4、 这个应该是P(3, 3)。
5、基本的数学问题,记得中学好像学过。
6、 你的问题是什么? 是不是想问这个调度站对于长度为n的,能够产生多少种调度结果么? =============================================================== 3 1 2这个结果是不可能的。
7、 所以结果不是简单的P(3,3)这样的排列组合问题。
8、应该是OK了,费我不少时间,你试试吧。
9、程序很多地方写得不够好,凑合用吧。
10、不想费时间去改进了。
11、 不过我没有删除重复的结果。
12、还需要你自己改进一下,小case。
13、 #define MAX_TRAIN_LEN 100 //#define PRINT_DUMP /* enable this macro to print all detail of scheduling */ typedef enum { GO_OUT_STATION = 0, GO_IN_STATION, GO_PASS_STATION } Action; static char *action_name[] = { "go out of station", "go in station", "go pass station" }; int train_len; int schedule_num; void printSchedule(int pass_train[], int pass_num) { int i; printf("----- got a schedule: "); for (i = 0; i < pass_num; i++) printf("%d, ", pass_train[i]); printf(""); } char * getActionName(Action act) { return action_name[act]; } void printTrain(char *name, int train[], int begin, int end) { int i; #ifdef PRINT_DUMP printf("%-20s: ", name); for (i = begin; i < end; i++) printf("%d, ", train[i]); printf(""); #else return; #endif } void printTrainNum(Action act, int unsched_num, int station_num, int pass_num) { #ifdef PRINT_DUMP printf("%-30s (unsched_num: %d, station_num: %d, pass_num: %d)", getActionName(act), unsched_num, station_num, pass_num); #else return; #endif } void printRestoreDump() { #ifdef PRINT_DUMP printf("restoring..."); #else return; #endif } /* Parameters: int unsched_train[MAX_TRAIN_LEN]; un-scheduled train int unsched_num; un-scheduled train number. This is the index of un-scheduled train number. So the un-scheduled trains are in range: [unsched_num, train_len-1]. int station_train[MAX_TRAIN_LEN]; train in station int station_num; train number in station, station trains are in range: [0, station_num-1] int pass_train[MAX_TRAIN_LEN]; passed train int pass_num; train number passed already, pass trains are in range: [0, pass_num-1] Action act current action */ /* * Three possible action: * 1) pass directly * 2) go into scheduling station * 3) if scheduling station has any train, go out of station */ void schedule(int unsched_train[], int unsched_num, int station_train[], int station_num, int pass_train[], int pass_num, Action act) { if (act == GO_OUT_STATION) { pass_train[pass_num++] = station_train[--station_num]; //printf("%d", pass_train[0]); printTrainNum(act, unsched_num, station_num, pass_num); printTrain("unsched", unsched_train, unsched_num, train_len); printTrain("station", station_train, 0, station_num); printTrain("pass", pass_train, 0, pass_num); } else if (act == GO_IN_STATION) { station_train[station_num++] = unsched_train[unsched_num++]; printTrainNum(act, unsched_num, station_num, pass_num); printTrain("unsched", unsched_train, unsched_num, train_len); printTrain("station", station_train, 0, station_num); printTrain("pass", pass_train, 0, pass_num); } else if (act == GO_PASS_STATION) { pass_train[pass_num++] = unsched_train[unsched_num++]; printTrainNum(act, unsched_num, station_num, pass_num); printTrain("unsched", unsched_train, unsched_num, train_len); printTrain("station", station_train, 0, station_num); printTrain("pass", pass_train, 0, pass_num); } if (unsched_num < train_len) { if (station_num > 0) { int old_unsched_train[MAX_TRAIN_LEN], old_station_train[MAX_TRAIN_LEN], old_pass_train[MAX_TRAIN_LEN]; int old_unsched_num, old_station_num, old_pass_num; memcpy(old_unsched_train, unsched_train, sizeof(int) * train_len); memcpy(old_station_train, station_train, sizeof(int) * train_len); memcpy(old_pass_train, pass_train, sizeof(int) * train_len); old_unsched_num = unsched_num; old_station_num = station_num; old_pass_num = pass_num; schedule(unsched_train, unsched_num, station_train, station_num, pass_train, pass_num, GO_OUT_STATION); printRestoreDump(); unsched_num = old_unsched_num; station_num = old_station_num; pass_num = old_pass_num; memcpy(unsched_train, old_unsched_train, sizeof(int) * train_len); memcpy(station_train, old_station_train, sizeof(int) * train_len); memcpy(pass_train, old_pass_train, sizeof(int) * train_len); printTrain("unsched", unsched_train, unsched_num, train_len); printTrain("station", station_train, 0, station_num); printTrain("pass", pass_train, 0, pass_num); schedule(unsched_train, unsched_num, station_train, station_num, pass_train, pass_num, GO_IN_STATION); printRestoreDump(); unsched_num = old_unsched_num; station_num = old_station_num; pass_num = old_pass_num; memcpy(unsched_train, old_unsched_train, sizeof(int) * train_len); memcpy(station_train, old_station_train, sizeof(int) * train_len); memcpy(pass_train, old_pass_train, sizeof(int) * train_len); printTrain("unsched", unsched_train, unsched_num, train_len); printTrain("station", station_train, 0, station_num); printTrain("pass", pass_train, 0, pass_num); schedule(unsched_train, unsched_num, station_train, station_num, pass_train, pass_num, GO_PASS_STATION); } else { int old_unsched_train[MAX_TRAIN_LEN], old_station_train[MAX_TRAIN_LEN], old_pass_train[MAX_TRAIN_LEN]; int old_unsched_num, old_station_num, old_pass_num; old_unsched_num = unsched_num; old_station_num = station_num; old_pass_num = pass_num; memcpy(old_unsched_train, unsched_train, sizeof(int) * train_len); memcpy(old_station_train, station_train, sizeof(int) * train_len); memcpy(old_pass_train, pass_train, sizeof(int) * train_len); schedule(unsched_train, unsched_num, station_train, station_num, pass_train, pass_num, GO_IN_STATION); printRestoreDump(); unsched_num = old_unsched_num; station_num = old_station_num; pass_num = old_pass_num; memcpy(unsched_train, old_unsched_train, sizeof(int) * train_len); memcpy(station_train, old_station_train, sizeof(int) * train_len); memcpy(pass_train, old_pass_train, sizeof(int) * train_len); printTrain("unsched", unsched_train, unsched_num, train_len); printTrain("station", station_train, 0, station_num); printTrain("pass", pass_train, 0, pass_num); schedule(unsched_train, unsched_num, station_train, station_num, pass_train, pass_num, GO_PASS_STATION); } } else if (station_num > 0) { schedule(unsched_train, unsched_num, station_train, station_num, pass_train, pass_num, GO_OUT_STATION); } else { /* get a schedule */ if (pass_num != train_len) { printf("Error: pass_num is not equal to train_len."); exit(1); } schedule_num++; printSchedule(pass_train, pass_num); } } void main() { int unsched_train[MAX_TRAIN_LEN]; int station_train[MAX_TRAIN_LEN]; int pass_train[MAX_TRAIN_LEN]; int i; printf("Please input train length: "); scanf("%d", &train_len); printf("=================================================="); if (train_len > MAX_TRAIN_LEN) { printf("train length is too large, maximal length is %d.", MAX_TRAIN_LEN); exit(1); } for (i = 0; i < train_len; i++) unsched_train[i] = i + 1; schedule_num = 0; schedule(unsched_train, 0, station_train, 0, pass_train, 0, GO_IN_STATION); printf("=================================================="); printf("Total schedule number is: %d", schedule_num); }。
本文就为大家分享到这里,希望小伙伴们会喜欢。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
在人工智能技术蓬勃发展的时代背景下,中小学阶段的人工智能教育已成为培育未来创新人才的重要基石。作为国家...浏览全文>>
-
【颇的形近字】“颇”是一个常见的汉字,其结构为左右结构,左边是“页”,右边是“皮”。在书写过程中,由于...浏览全文>>
-
【颇的读音是什么】“颇”是一个常见的汉字,但在日常使用中,很多人对其读音并不十分确定。本文将从字形、字...浏览全文>>
-
【颇查什么部首】在汉字学习中,了解一个字的部首是理解其结构和含义的重要一步。对于“颇”这个字,很多人可...浏览全文>>
-
【泼组词的词语有那些】“泼”是一个常见的汉字,具有多种含义和用法,在汉语中常用于动词或形容词。它既可以...浏览全文>>
-
【泼字怎么组词】“泼”是一个常见的汉字,读音为“pō”,在汉语中具有多种含义和用法。它既可以表示“水或液...浏览全文>>
-
【泼字能组哪些词】“泼”是一个常见的汉字,具有多义性,在汉语中常用于形容动作或状态,带有强烈的语气色彩...浏览全文>>
-
【泼水节是几月几日】泼水节是中国傣族等少数民族的重要传统节日,具有浓厚的民族特色和文化内涵。它不仅是庆...浏览全文>>
-
【萍字怎么组词】“萍”是一个常见的汉字,读音为“píng”,主要指浮萍,一种生长在水面上的植物。在日常使用...浏览全文>>
-
【萍字如何拆开】“萍”字是一个常见的汉字,常用于表示浮萍、水草等植物。在学习汉字结构时,了解一个字的组...浏览全文>>
