打工小队
【问题描述】
路取经辛苦,难免偶遇“黑店" ,这不,由于八戒的粗心大意,师徒四人在一家旅店欠下“巨款”, 白纸黑字竟写得明明白白。唐僧只好组织徒弟们, 给黑店老板当起了小工。旅店有很多的工作, 比如刷碗,做饭,洗衣服,扫地,收拾房间等等。每一项工作的工资都不相同,而且老板规定同一个工作,只能由不同的人来做, 并且工资也不一样,比如上菜,有齐天大圣名头的猴哥来做, 就要比八戒的工资高一些。黑店老板给出了N份工作,并标出了不同工作,不同人承担的工资。请你帮忙规划一下,怎样排班能够获得更多的工资呢? 输入: N+1行,第一行为N(N<=30 )的值,表示有N份工作待分配(同样有N个人物等待工作安排),后面N行是第N件工作每个人的工作的收入。输出: 一个整数,表示最高收入。
【样例输入】
5
13 11 10 4 7
13 10 10 8 5
5 9 7 7 4
15 12 10 11 5
10 11 8 8 4
【样例输出】
50
#include<iostream> using namespace std; int n; int a[31][31],b[101]={},maxa=0; void dfs(int job, int money){ for(int i=1; i<=n; i++){ if(b[i]==0){ money+=a[job][i]; b[i]=1; if(money>maxa) maxa=money; if(job<n){ dfs(job+1, money); } // 回溯: b[i]=0; money-=a[job][i]; } } return; } int main(){ cin>>n; for(int i=1; i<=n; i++){ for(int j=1; j<=n; j++){ cin>>a[i][j]; } } dfs(1,0); // 1表示工作;2表示工钱。 cout<<maxa; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2021-08-01 turtle画太阳
2021-08-01 单词频率