码迷,mamicode.com
首页 > 其他好文 > 详细

员工分配工作(深度优先)

时间:2020-01-26 22:36:07      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:use   color   name   工作   str   cin   时间   ace   using   

题意:公司分配N项工作给N个员工,每个员工只能被分给1项工作,每个人处理工作的时间不同。求完成所有工作所需的最少时间。

输入:第一行输入整数N,代表N个员工,员工编号从1到N(1<=N<=10)

    接下来输入一个N*N的二维矩阵task[N][N],其中task[i][j](0<=task[i][j]<=1000)代表第i项工作由j号员工完成所需的时间。

输出:输出一个整数,代表工作完成所有工作所需的最少时间。

样例:

输入:

6
10 11 12 11 9 11
11 9 10 13 11 12
12 10 11 10 13 9
9 14 9 10 10 11
10 10 9 11 12 11
10 7 10 10 10 8

输出:

54

dfs暴力深搜(深度优先)

 1 #include<iostream>
 2 using namespace std;
 3 
 4 int task[15][15]; //
 5 bool used[15];
 6 int ans;
 7 int n;
 8 void dfs(int x,int t){
 9     if(x==n){
10         if(t<ans){
11             ans=t;
12         }
13         return;
14     }
15     for(int i=0;i<n;i++){
16         //判断员工是否被使用
17         if(!used[i]){
18             used[i]=true;
19             dfs(x+1,t+task[x][i]);
20             used[i]=false;
21         }
22     }
23 }
24 int main()
25 {
26     cin>>n;
27     for(int i=0;i<n;i++){
28         for(int j=0;j<n;j++){
29            cin>>task[i][j];
30         }
31     }
32     ans=200000;
33     //从第0行开始搜,刚开始花费时间为0
34     dfs(0,0);
35     cout<<ans;
36     return 0;
37 }

 

员工分配工作(深度优先)

标签:use   color   name   工作   str   cin   时间   ace   using   

原文地址:https://www.cnblogs.com/mld-code-life/p/12234839.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!