车皮划痕怎么修复(车皮)
您好,今天小编胡舒来为大家解答以上的问题。车皮划痕怎么修复,车皮相信很多小伙伴还不知道,现在让我们一起来看看吧!
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); }。
本文就为大家分享到这里,希望小伙伴们会喜欢。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
大众CC作为一款备受关注的中型轿车,凭借其优雅的设计和出色的性能一直吸引着众多消费者的目光。2025款大众CC...浏览全文>>
-
2025款阜阳途锐新车正式上市,凭借其卓越的性能和豪华配置吸引了众多消费者的关注。这款车型以最低售价55 88...浏览全文>>
-
在准备购买一辆汽车之前,了解车辆的落地价格是非常重要的。所谓落地价,是指购车时除了车款之外还需要支付的...浏览全文>>
-
安徽淮南地区的长安启源E07作为一款备受关注的新能源车型,凭借其时尚的设计、丰富的配置以及出色的续航能力,...浏览全文>>
-
安徽淮南长安启源A05 2025款新车现已正式上市,这款车型以其高性价比和出色性能吸引了众多消费者的关注。作为...浏览全文>>
-
安徽阜阳地区的威然车型在近期进行了配置上的升级,对于想要购买这款MPV的消费者来说,这是一个值得关注的消息...浏览全文>>
-
随着汽车市场的不断发展,SUV车型因其宽敞的空间和多功能性受到了越来越多消费者的青睐。作为大众旗下的高端旗...浏览全文>>
-
安徽蚌埠地区想要购买长安启源E07这款新能源汽车的朋友,可以参考以下信息来做出更明智的选择。长安启源E07定...浏览全文>>
-
随着汽车市场的不断发展,2025款安庆高尔夫作为一款备受关注的车型,其价格和配置自然成为消费者热议的话题。...浏览全文>>
-
近期,安徽蚌埠地区的帕萨特车型迎来了新一轮的价格调整,其落地价再次创下新低,吸引了众多消费者的关注。作...浏览全文>>
- 悉尼最后几个年薪低于 10 万美元的郊区
- 2025 年新南威尔士州值得投资的地方
- 揭秘在澳大利亚买房需要多少收入
- 悉尼最后几个年薪低于 10 万美元的郊区
- 昆士兰有望成为澳大利亚房地产强国之一
- MSI 推出首款双模式 4K 曲面电竞显示器
- 飞利浦 Screeneo GamePix 900:在发布前进行预览
- 您会在这个奇怪的电动露营三轮车里露营吗
- Meross 推出支持 Matter 的智能恒温器
- 配备出色 3K OLED 显示屏的 Acer Swift 16 现已降价至史上最低价
- Acer Predator Helios 18 RTX 4080 游戏笔记本电脑 现优惠 725 美元
- VivoX200Pro视频和新样张揭示了200MP蔡司变焦相机的锐利眼睛可以达到多远
- 派对氛围天文爱好者又一次欣赏到极光秀
- iPhone16相机控制按钮有史以来最不苹果的东西
- 贾雷尔夸萨与利物浦签订新合同
- 首款在安兔兔上得分300万的手机拥有非常强大的SoC即将发布
- HumaninMotionRobotics的自平衡XoMotion外骨骼获得加拿大批准用于物理治疗
- 龙宫样本对之前关于富碳小行星形成的观点提出了质疑
- 凯文德布劳内伤情更新曼城球星的伤势进展和可能的回归日期
- 实验室实验表明用核武器轰炸一颗巨大的小行星可以拯救地球