zoukankan      html  css  js  c++  java
  • 工作分配(值得庆祝的一个题)

    麻吉我终于自己真正的做出来一道搜索的题!!

    开熏qwq

    庆祝庆祝!!!!!!

    呱唧呱唧!

    【问题描述】

          设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij。试设计一个算法,为每一个人都分配一件不同的工作,并使总费用达到最小。

    【编程任务】

          设计一个算法,对于给定的工作费用,计算最佳工作分配方案,使总费用达到最小。

    【输入格式】

          由文件job.in给出输入数据。第一行有1个正整数n (1≤n≤20)。接下来的n行,每行n个数,第i行表示第i个人各项工作费用。

    【输出格式】

          将计算出的最小总费用输出到文件job.out。

    【输入样例】

    3
    4  2  5
    2  3  6
    3  4  5

    【输出样例】

    9

    【代码】

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<iostream>
     4 #include<cstdlib>
     5 #include<cstring>
     6 #include<string>
     7 #include<cmath>
     8 
     9 using namespace std;
    10 
    11 int n,ans,minn=0x7fffffff;//记录最小费用
    12 int zj[233][233];
    13 bool qwq[886];//判断是否可以工作
    14 
    15 int search(int);
    16 int change();
    17 
    18 int main() {
    19     cin>>n;
    20     for(int i=1; i<=n; i++) {
    21         for(int j=1; j<=n; j++)
    22             cin>>zj[i][j];
    23     }
    24     search(1);
    25     cout<<minn<<endl;
    26     return 0;
    27 }
    28 
    29 int search(int x) {
    30     for(int j=1; j<=n; j++) {
    31         if(!qwq[j]) {
    32             qwq[j]=1;
    33             ans+=zj[x][j];
    34             if(x==n) change();
    35             else search(x+1);
    36             qwq[j]=0;
    37             ans-=zj[x][j];
    38         }
    39 
    40     }
    41 }
    42 
    43 int change() {
    44     if(ans<minn) minn=ans;
    45 }

    如果运气好也是错,那我倒愿意错上加错!

    ❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀

  • 相关阅读:
    nginx http和https共存
    jQuery prop方法替代attr方法
    idea内置tomcat中java代码热更新
    Linux磁盘空间查看、磁盘被未知资源耗尽
    Mysql order by与limit混用陷阱
    IIS 架构解析
    asp.net MVC 应用程序的生命周期
    Linq专题之var关键字
    ThoughtWorks 2016年第1期DNA活动总结
    对象的深拷贝--反射
  • 原文地址:https://www.cnblogs.com/zxqxwnngztxx/p/6613512.html
Copyright © 2011-2022 走看看