只有一组测试用例。
输入:第一行是操作员的人数n(4=<n<=11),接下来的n行里每行有n个数,分别表示第i名操作员完成第i项任务的时间。
输入:第一行是操作员的人数n(4=<n<=11),接下来的n行里每行有n个数,分别表示第i名操作员完成第i项任务的时间。
输出:完成所有任务的最短时间。
4 3 8 4 12 9 12 13 5 8 7 9 3 12 7 6 8
基本思路:
用最基础的dfs做;其实作为一个小渣渣,我不太会。我看了看别人的代码才写出来的,觉得描述一遍可能会理解得更清楚一点。
dfs:就是一直往深搜;搜到最后计算总时间;
#include<stdio.h> #include<string.h> #define INF 1000000000 int map[20][20];//第i位员工完成第j项任务所用的时间 int vis[100];//标记 int time=INF;//最好时间 int mintime;//每个任务完成最短时间之和 int min[20]; int n; void dfs(int x,int sum){ // vis[1]=1; int k; if(x==n+1){ if(sum<time) time=sum; } for(int i=1;i<