【题解】危险的工作-C++
2024-09-01 02:21:55
Description
给出一个数字N,N<=11.代表有N个人分担N个危险的工作。
每个人对应每个工作,有个危险值
每个人担任其中一项,问每个人危险值相加,最小值是多少。
Input
第一行给出数字N,接下来N行N列
第i行第j列,代表第i个人担负第j个工作的危险值是多少
Output
如题
Sample Input
3
10 2 3
2 3 4
3 4 5
Sample Output
9
这道题目就是一道DFS的题目,每次考察取哪一个人做哪一个项目,但是要注意的是:
1.已经有项目的人不能再安排了
2.如果遇到当前危险值大于目前最小危险值的情况,剪枝
因为这道题目数据较小,所以不需要过分剪枝就可以AC。
#include<bits/stdc++.h>
using namespace std;
int n,d[20][20];
bool flag[20];
int ans=0x3f3f3f3f;
void dfs(int dep,int sum)
{
if(sum>ans)return;
if(dep==n+1)
{
ans=sum;
return;
}
for(int i=1;i<=n;i++)
{
if(!flag[i])
{
flag[i]=1;
dfs(dep+1,sum+d[i][dep]);
flag[i]=0;
}
}
return;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>d[i][j];
}
}
dfs(1,0);
cout<<ans<<endl;
return 0;
}
最新文章
- CSS之立方体绘画步骤
- 地址(Address)——WCF学习笔记(2)
- 在Fragment中获取Activity中数据
- ionic2 页面加载时图片添加的问题
- -_-#【JS】defer / async
- (转)如何在高并发分布式系统中生成全局唯一Id
- show processlist 输出ID 和 information_schema.PROCESSLIST 的id,information_schema.innodb_trx的TRX_MYSQL_T
- java-web-j2e学习建议路线
- ThinkPHP中连接mysql数据库的四种实用和通用的连接方法
- mysql简单建表
- SVM入门(一)
- Hbase中HMaster作用
- Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll
- 手写数字识别 ----在已经训练好的数据上根据28*28的图片获取识别概率(基于Tensorflow,Python)
- MongoDB副本集(一主两从)读写分离、故障转移功能环境部署记录
- Spring Mvc和Spring Boot读取Profile方式
- [js]js中事件的3要素
- 描述: http通讯基础类
- 在function module 中向数据库插入数据
- SVG 学习<;八>; SVG的路径——path(2)贝塞尔曲线命令、光滑贝塞尔曲线命令
热门文章
- Win10《芒果TV》更新v3.5.0夏至版:会员尊享蓝光画质,关联本地视频播放
- C# DataGridView合计行
- WCF nginx反向代理遇到的问题
- vs编译在win xp电脑上运行的win32程序遇到的问题记录(无法定位程序输入点GetTickCount64于动态链接库KERNEL32.dll)
- QString unsigned char* 的转换
- VS 查看是否有内存泄露的方法
- Java基础(五) final关键字浅析
- 深度强化学习day01初探强化学习
- 记录一次关于Cookie、Json中文乱码的解决方法
- OVS实现VXLAN隔离