逐句讲解以下代码#include<stdio.h> #include <iostream> #include <algorithm> using namespace std; int n , m ,best=1000000; int len[99]; int t[99]={29,7,20,19,19,22,8}; int comp(){ int x= 0; for(int i=0; i<m ; i++) if(len[i]>x) x=len[i]; return x ; } void search(int dep,int *len,int *t){ if(dep==n) { int x=comp(); if(x<best) best=x; return; } for(int i=0; i<m ; i++) { len[i]+=t[dep]; if(len[i]<best) search(dep+1,len,t); len[i]-=t[dep]; } } int main(){ int i; cin>>n>>m ; for (i=0; i<m ; i++) len[i]=0; search(0,len,t); cout<<"处理所有作业所需最短时间:"<<best<<endl; return 0; }
时间: 2024-03-15 19:41:37 浏览: 59
1. `#include<stdio.h>`:引入标准输入输出库头文件。
2. `#include <iostream>`:引入C++标准输入输出流库头文件。
3. `#include <algorithm>`:引入C++算法库头文件。
4. `using namespace std;`:使用标准命名空间。
5. `int n, m, best = 1000000;`:定义整型变量 n,m 和 best,初始值为 1000000。
6. `int len[99];`:定义长度为 99 的整型数组 len。
7. `int t[99] = {29, 7, 20, 19, 19, 22, 8};`:定义长度为 99 的整型数组 t,并给数组赋初值。
8. `int comp()`:定义了一个名为 comp 的函数,返回值为整型。
9. `int x = 0;`:定义整型变量 x,初始值为 0。
10. `for(int i=0; i<m ; i++)`:循环语句,变量 i 的初始值为 0,每次循环后 i 自增 1,循环条件为 i 小于 m。
11. `if(len[i]>x)`:判断语句,如果 len[i] 大于 x,则执行下面的语句。
12. `x = len[i];`:将 len[i] 的值赋给 x。
13. `return x;`:返回变量 x 的值。
14. `void search(int dep, int *len, int *t)`:定义了一个名为 search 的 void 函数,接收三个参数:dep,len 和 t。
15. `if(dep==n)`:判断语句,如果 dep 等于 n,则执行下面的语句。
16. `int x = comp();`:定义整型变量 x,将 comp 函数的返回值赋给它。
17. `if(x<best)`:判断语句,如果 x 小于 best,则执行下面的语句。
18. `best = x;`:将 x 的值赋给 best。
19. `return;`:结束函数的执行。
20. `for(int i=0; i<m ; i++)`:循环语句,变量 i 的初始值为 0,每次循环后 i 自增 1,循环条件为 i 小于 m。
21. `len[i] += t[dep];`:将 len[i] 和 t[dep] 相加,将结果赋给 len[i]。
22. `if(len[i] < best)`:判断语句,如果 len[i] 小于 best,则执行下面的语句。
23. `search(dep+1, len, t);`:递归调用 search 函数,将 dep+1、len 和 t 作为参数传递给它。
24. `len[i] -= t[dep];`:将 len[i] 减去 t[dep],将结果赋给 len[i]。
25. `int main()`:定义了一个名为 main 的函数,返回值为整型。
26. `int i;`:定义整型变量 i。
27. `cin >> n >> m;`:从标准输入流中读取两个整型数值,分别赋给 n 和 m。
28. `for(i=0; i<m ; i++) len[i]=0;`:循环语句,变量 i 的初始值为 0,每次循环后 i 自增 1,循环条件为 i 小于 m,将 len 数组中的每个元素都赋值为 0。
29. `search(0, len, t);`:调用 search 函数,将 0、len 和 t 作为参数传递给它。
30. `cout << "处理所有作业所需最短时间:" << best << endl;`:将字符串和变量 best 打印到标准输出流中,在结尾处加上换行符。
31. `return 0;`:结束程序的执行,返回 0。
阅读全文