Time Limit: 1 second
Memory Limit: 128 MB

【问题描述】

现有n个任务,要交给A和B完成。每个任务给A或给B完成,所需的时间分别为ai和bi。问他们完成所有的任务至少要多少时间。
【输入格式】

第一行一个正整数n,表示有n个任务。
接下来有n行,每行两个正整数ai,bi。

【输出格式】

一个数,他们完成所有的任务至少要的时间。
【输入输出样例解释】
A完成任务1和任务2,时间为11。B完成任务3,时间为12。
或者 A完成任务1和任务3,时间为12。B完成任务2,时间为11。
【限制】
30%的数据满足:1 <= n <= 20
100%的数据满足:1 <= n <= 200 , 1 <= ai,bi <=200
Sample Input

3
5 10
6 11
7 12

Sample Output

12

【题目链接】:http://noi.qz5z.com/viewtask.asp?id=t057

【题解】

设f[i][j]表示前i个任务,a机器花了j时间,b机器花的时间的最小值;
即f[i][j]表示的是B机器花了多少时间;

f[i][j] = min(f[i-1][j]+b[i],f[i-1][j-a[i]]);
其中前一个表示第i个任务用b机器搞,后一个表示用a机器搞;
比较奇葩的状态转移方程.

【完整代码】

#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <set>
#include <map>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
#include <vector>
#include <stack>
#include <string>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se secondtypedef pair<int,int> pii;
typedef pair<LL,LL> pll;void rel(LL &r)
{r = 0;char t = getchar();while (!isdigit(t) && t!='-') t = getchar();LL sign = 1;if (t == '-')sign = -1;while (!isdigit(t)) t = getchar();while (isdigit(t)) r = r * 10 + t - '0', t = getchar();r = r*sign;
}void rei(int &r)
{r = 0;char t = getchar();while (!isdigit(t)&&t!='-') t = getchar();int sign = 1;if (t == '-')sign = -1;while (!isdigit(t)) t = getchar();while (isdigit(t)) r = r * 10 + t - '0', t = getchar();r = r*sign;
}const int MAXN = 200+10;
const int INF = 0x3f3f3f3f;
const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);int f[MAXN][MAXN*MAXN];
int n;
int a[MAXN],b[MAXN];int main()
{//freopen("F:\\rush.txt","r",stdin);rei(n);rep1(i,1,n)rei(a[i]),rei(b[i]);memset(f,INF,sizeof f);f[0][0] = 0;int now = 0;rep1(i,1,n){now += a[i];rep1(j,0,now){if (f[i-1][j]+b[i]<f[i][j])f[i][j] = f[i-1][j]+b[i];if (j>=a[i])if (f[i][j]>f[i-1][j-a[i]])f[i][j] = f[i-1][j-a[i]];}}int ans = INF;rep1(i,0,now)ans = min(ans,max(i,f[n][i]));printf("%d\n",ans);return 0;
}

转载于:https://www.cnblogs.com/AWCXV/p/7626860.html

【t057】任务分配相关推荐

  1. 白盒测试实践作业任务分配

    将白盒测试实践作业进行了如下的任务分配: 测试用例清单 安秀芳 静态评审 罗阳刚.周成 自动化静态检查 滕怡天 基于Junit的单元测试脚本开发 罗琰琰.库博 安秀芳于今日完成了白盒测试的用例清单 滕 ...

  2. JStorm与Storm源码分析(二)--任务分配,assignment

    mk-assignments主要功能就是产生Executor与节点+端口的对应关系,将Executor分配到某个节点的某个端口上,以及进行相应的调度处理.代码注释如下: ;;参数nimbus为nimb ...

  3. 任务分配算法c语言,基于蚁群算法多Agent任务分配方法.pdf

    基于蚁群算法多Agent任务分配方法.pdf 第26 卷第4 期 湖 南 工 业 大 学 学 报 Vol.26 No.4 20 12 年7 月 Journal of Hunan University ...

  4. 会议室分配时间最长_论文导论动态任务分配GPU上图计算的高效处理方式

    编者按GPU作为一种硬件,相比较于CPU来说,有更多的并行度和更高的带宽,在图像处理领域取得了非常好的应用效果.越来越多的研究也正试图将GPU也应用到图计算领域中,然而GPU适合进行规则运算,但是图是 ...

  5. 分析JobInProgress中Map/Reduce任务分配

    1.JobTracker能否决定给当前的TaskTracker节点分配一个Job的具体的哪一个任务? 2.什么是map本地任务? 3.nonRunningMapCache的作用是什么? 4.从Task ...

  6. 开源人员任务分配_开源财富分配是否公平?

    开源人员任务分配 如果财富是有价值的财产的丰富,那么开源拥有大量的软件. 尽管没有人"拥有"开源资源,但在将这种公共财富转化为个人财富方面,有些人比其他人更好. 许多生产免费开放源 ...

  7. 多无人机任务分配与路径规划算法学习(一)

    本文是阅读"多无人机任务分配与路径规划算法研究_丁家如"文献的学习记录. 记录的第一部分是有关任务分配的知识,各种模型的建立就放到下次来写. 一.多无人机任务分配的本质 目前阅读的 ...

  8. 软件项目如何进行任务分配,减少冲突?

      1.任务分配并非平均分配 项目经理往往有个认知误区,认为把工作任务详细分解,平均分配给每个人,不偏不倚,公平公正就没有问题.但在实际开发过程中,这样很容易出问题,尤其是到项目后期,掉链子的人会越来 ...

  9. 7、任务分配-任务分派其他人

    任务分配-任务分派其他人 1.个人任务分配 2.组任务分配 2.1.多个候选人处理任务 2.2.多候选人任务使用场景,任务分派 2.3.候选组分配-用的较多 1.个人任务分配 2.组任务分配 根据角色 ...

最新文章

  1. 蚂蚁金服天街:OceanBase 在大促 5 年来的技术演进
  2. java将图片放进mysql中_在java代码中怎么从服务器上把图片拿来放到数据库里
  3. python异常处理优点_python各类异常处理学习笔记
  4. Spring Batch可重启性
  5. flowable 实现多实例-会签-动态配置人员 参考demo
  6. Spring Boot(2) 配置文件
  7. 详解c++[指针的指针] 和 [指针的引用]
  8. MCSA Windows Server 2016 Complete Study Guide, 2nd Edition 免积分下载
  9. volatile详解
  10. MEGA2560 arduino烧录USB 芯片flash以及bootloader记录
  11. matlab求非线性方程的根,求非线性方程的根
  12. 基于Java+SpringBoot+Vue+uniapp前后端分离图书阅读系统设计与实现
  13. cc2530 按键中断实验——按键控制LED灯的亮灭
  14. 免费把pdf转换成excel
  15. Reog Ponorogo是爪哇族人在印尼的一个部落的传统舞蹈
  16. window中有关UnxUtils的使用心得
  17. nasa birthday pictures (NASA搜索你生日当天拍摄的宇宙图片)
  18. 【B站最良心】2020年中9款热门游戏本最强横评!花8万块买下所有热门游戏本,华硕 天选 联想 拯救者 Y7000P R7000惠普 暗影精灵 6 Plus_哔哩哔哩 (゜-゜)つロ 干杯~-bili
  19. 计算机使用的显示器主要有两类,2015年计算机专转本预测题及答案
  20. Qt用代码实现菜单栏(MenuBar)和工具栏(ToolBar)

热门文章

  1. wpf page 界面渲染完成后执行自动操作_Vue项目骨架屏自动生成方案(dps)
  2. sublime怎么编译php,让sublime编译php、js
  3. websocket 发送给前端一个对象_前端WebSocket封装
  4. java面试题-----------静态代码块和代码块和构造方法执行顺序
  5. 【spring cloud】注解@SpringCloudApplication和@SpringBootApplication的区别
  6. 收藏100个网络基础知识
  7. MySQL数据库的mysqldump完全备份、binlog的增量备份与还原
  8. 微软官方宣布:Edge 浏览器将采用 Chromium 内核
  9. 基本系统设备感叹号_win7系统网络图标显示感叹号的问题
  10. ubuntu安装portainer_Docker【二】:Docker管理工具Portainer