栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1973 Software Company

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1973 Software Company

#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n, m, a[101], b[101];int f[101][101] = {0};bool enough(int T){memset(f, -1, sizeof(f));//f[i][j] = -1,表示i个人在时间T内不可能做j个任务f[0][0] = 0;//0个人自然是能做0个A类任务和0个B类任务的for(int i = 1; i <= n; ++i){//前i个都不做A类任务f[i][0] = f[i-1][0] + T / b[i];}for(int j = min(m, T/a[1]); j; --j){//第1个人选择做j个A类任务f[1][j] = (T - j*a[1]) / b[1];}for(int i = 2; i <= n; ++i){for(int j = 1; j <= m; ++j){for(int k = min(T/a[i], j); k > -1; --k){//第i个人做k个A类任务,则需要前i-1个人做j-k个A类任务if(f[i-1][j-k] != -1) f[i][j] = max(f[i][j], f[i-1][j-k] + (T-k*a[i]) / b[i]);}}}return f[n][m] >= m;}int main(){int test, ans;for(scanf("%d", &test); test--; ){scanf("%d%d", &n, &m);for(int i = 1; i <= n; ++i) scanf("%d%d", a + i, b + i);int l = 0, r = m * (*max_element(a+1, a+n+1) + *max_element(b+1, b+n+1));while(l <= r){int m = (l+r) >> 1;if(enough(m)){ans = m;r = m-1;}else l = m+1;}printf("%dn", ans);}return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376847.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号