hdu 3433(dp+二分) A Task Process

VS Code配置MinGW64编译非线性优化库NLopt VS Code用MinGW64编译C++代码安装MSYS2软件并配置非线性优化库NLopt和测试引用库代码的完整具体步骤。:若使用非UCRT版本(如传统MinGW64),替换所有路径中的。库文件会自动安装到MSYS2的。 阅读详情

题意:

有n个人,每个人完成一件A任务需要a[i]时间,完成一件B任务需要b[i]时间,问要完成x件A任务y件B任务所需的最短时间是多少?

思路

二分+DP。
二分时间t,dp[i][j]表示在时间t内前i个人完成j件A任务所能完成的B任务的最大数量。如果dp[i][x]>=y
就是可以的。然后不断迭代得到ans。

复杂度:

0(n*x^2*log(t)) t范围是40w

参考code:

/*
 #pragma warning (disable: 4786)
 #pragma comment (linker, "/STACK:0x800000")
 */
#include <cassert>
#include <cctype>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <sstream>
#include <iomanip>
#include <string>
#include <vector>
#include <list>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <algorithm>
#include <iterator>
#include <utility>
using namespace std;

template< class T > T _abs(T n) { return (n < 0 ? -n : n); }
template< class T > T _max(T a, T b) { return (!(a < b) ? a : b); }
template< class T > T _min(T a, T b) { return (a < b ? a : b); }
template< class T > T sq(T x) { return x * x; }
template< class T > T gcd(T a, T b) { return (b != 0 ? gcd<T>(b, a%b) : a); }
template< class T > T lcm(T a, T b) { return (a / gcd<T>(a, b) * b); }
template< class T > bool inside(T a, T b, T c) { return a<=b && b<=c; }


#define MIN(a, b) ((a) < (b) ? (a) : (b))
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#define F(i, n) for(int (i)=0;(i)<(n);++(i))
#define rep(i, s, t) for(int (i)=(s);(i)<=(t);++(i))
#define urep(i, s, t) for(int (i)=(s);(i)>=(t);--(i))
#define repok(i, s, t, o) for(int (i)=(s);(i)<=(t) && (o);++(i))            
#define MEM0(addr) memset((addr), 0, sizeof((addr)))
#define MP(x, y) make_pair(x, y)
#define REV(s, e) reverse(s, e)
#define SET(p) memset(pair, -1, sizeof(p))
#define CLR(p) memset(p, 0, sizeof(p))
#define MEM(p, v) memset(p, v, sizeof(p))
#define CPY(d, s) memcpy(d, s, sizeof(s))
#define READ(f) freopen(f, "r", stdin)
#define WRITE(f) freopen(f, "w", stdout)
#define SZ(c) (int)c.size()
#define PB(x) push_back(x)
#define ff first
#define ss second
#define ll long long
#define ld long double
#define pii pair< int, int >
#define psi pair< string, int >
#define ls u << 1
#define rs u << 1 | 1
#define lson l, mid, u << 1
#define rson mid, r, u << 1 | 1

const int maxn = 300010;
const ll INF = 0x3f3f3f3f3f3fLL;

int dp[55][205];
int a[205],b[205];
int n,x,y;
int check(int t){
    MEM(dp,-1);
    dp[0][0] = 0;

    rep(i,1,n){
        if(dp[i][x] >= y) return 1;
        rep(j,0,x){
            if(dp[i-1][j] != -1){
                int tmp = min(t/a[i],x-j);
                rep(k,0,tmp){
                    int t1 = (t - a[i] * k) / b[i];
                    dp[i][j+k] = MAX(dp[i][j+k],dp[i-1][j]+t1);
                }
            }
        }
    }
    if(dp[n][x] >= y) return 1;
    else return 0;
}
int main(){
    //READ("in.txt");
    int t,kase = 1;
    scanf("%d",&t);
    while(t--){
        scanf("%d%d%d",&n,&x,&y);
        rep(i,1,n) cin >> a[i] >> b[i];

        int l = 0;
        int r = a[1] * x + b[1] * y;
        int ans;
        while(l <= r){
            int mid = (l + r) >> 1;
            if(check(mid)){
                ans = mid;
                r = mid - 1;
            }else{
                l = mid + 1;
            }
        }
        printf("Case %d: %d\n",kase++,ans);
    }
    return 0;
}
数电实验,如何安装Quartus II软件? 数电实验第一步,安装软件Quartus II! 安装这个软件可以说是很折磨我了,依然是failed很多次之后终于可以了! 能成功安装,多亏了网络上的各路大神!!!不胜感激 现在分享经验如下: ps:我分享的是Quartus II 14.0版本的软件及破解器安装使用方法 注意!想要在电脑上顺利安装,前提条件是电脑有10G以上内存!!! 友情提示:建议整个下载过程中,提前关掉所有杀毒、电脑 阅读详情

相关推荐

nRF24L01模块性能调优笔记:基于STC8H的SPI通信,如何突破700包/秒的传输瓶颈?

本文详细介绍了如何通过SPI通信优化、nRF24L01寄存器配置和STC8H系统级调优,突破700包/秒的传输瓶颈。从硬件设计到软件实现,提供了一套完整的性能调优方案,特别适合需要高性能无线通信的嵌入式开发者。

weixin_42525211的博客 181

【c/c++算法刷题笔记】—— 1.27 CCF 打卡14(201812)

【前言】这周主要复习笔试科目没怎么刷算法题,收到消息提醒竟然还涨粉了!承蒙厚爱,小弟我加紧更新 1 201712-2 游戏 题目描述 问题描述   有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。   游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的...

Paul 的笔记库 319

【电子元件篇】MOSFET场效应管作用、选型和测量指南-超简单解读

场效应管是一种电压控制型半导体器件,相比三极管具有输入阻抗高、噪声小、功耗低等优势。主要分为结型和绝缘栅型两大类,后者又可分为耗尽型和增强型MOS管。场效应管通过栅极电压控制漏极电流,具有转移特性和输出特性两大静态特性,以及快速的开关特性。其关键参数包括饱和漏源电流、夹断电压、跨导等,应用场景涵盖信号放大、恒流源、阻抗变换等领域。使用时需根据电路需求选择合适类型,如结型管适合一般放大,功率MOSFET适合高压大电流场合。检测时可用万用表电阻档初步判断好坏和放大能力。

2301_81299416的博客 2540

A Task Process hdu 3433

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3433 题目大意:有n个工人,来做A,B两种任务,其中A任务总共有x件,B任务总共有y件,给定每个工人干一件A任务和B任务所花费的时间。求这些人同时开始干这些任务,最少多长时间能把A、B两种任务都完成。 主题思路:分析本题可以发现,每个人分配的时间越长则每个人能做的任务也越多(可能相等,但是做的工作...

tomhibolu 155

STM32在六轴机械臂实时控制中的选型与分层架构设计

嵌入式实时控制系统中,微控制器的选型直接决定运动控制精度与系统可靠性。其核心在于匹配确定性中断响应、低延迟外设协同与工业协议栈支持等硬性指标。STM32凭借Cortex-M内核的NVIC调度能力、成熟HAL库及CAN FD/高级定时器等专用外设,在机电一体化场景中成为伺服控制中枢的首选。相比ESP32等通用MCU,STM32在硬实时性、EMC认证生态和工业总线兼容性上具备不可替代优势。本文围绕GTB六轴机械臂项目,详解基于STM32F407的硬件抽象层配置、FreeRTOS任务调度、事件队列解耦及闭环控制数

jupi8的博客 754

手把手教你用OpenClaw+飞书打造论文写作AI助手(附踩坑实录)

面对几十篇文献,逐一阅读摘要都费时。我:“请提取桌面‘论文参考文献’文件夹中所有PDF的摘要,整理成表格,包含:论文标题、作者、发表年份、核心方法、主要结论。AI助手:“正在处理...已提取18篇论文摘要,汇总表格已保存到桌面‘文献摘要汇总.xlsx’。这比我自己一个个打开PDF复制粘贴快了不止100倍。OpenClaw+飞书的组合,让AI真正成为了我的“数字员工”。虽然配置过程有些曲折,但看到它在飞书里回应指令、帮我处理繁琐工作时,那种成就感无可替代。如果你也在准备论文,不妨试试这套方案。记住,

AcademicIdeas的博客 1041

HDU3433 A Task Process(dp+二分查找)

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=3433题目意思有n个人,和a,b两种任务,现在给你要n个人完成的a,b任务的总个数,和每个人完成a,b任务的时间,每个人完成任务互不影响,问最短达标时间。解题思路题目给了人数,a,b任务,求时间。首先由于求输出的时间为最优的,所以分配给每个人时间相同,接着又因为知道一个人a任务完成个数根据时间就能求

绝丶爵的博客 261

BSW:MemMap模块配置及使用

(内存映射(MemMap)模块用于通过内存映射文件将代码和数据映射到特定的内存部分。MemMap生成特定的头文件,其中包含为MemorySection元素和编译器特定指令定义的内存映射预处理器。上面是比较官方的回答,说人话就是把数据和代码放在ECU内指定的地址。初级应用:软件中的bss,data,rodata,code,text,段需要在memory layout中划分具体的物理地址,对于多核系统,要将执行的数据和代码放在目标核的RAM和ROM。

Forever_Oct的博客 3675

HDU3433 【时间的二分+DP最优解】

题意: 有n个人,X个任务A,Y个任务B, 给出每个人做A做B的时间,一个人只能在某个时刻做一个工作, 问最短时间完成所有工作。 思路: 二分n个人用的时间,判断最优条件用DP。 可以二分就是因为时间越多的话肯定能做更多的task啊。 真的好神奇!n个人可以同一时间一起做事,那么对于给定的时间,也就是说每个人都拥有这么多时间,无非就是他会去怎么安排,那么就DP啊。 dp...

weixin_30302609的博客 213

Apache Hop集成Spring Boot实战:从配置到执行HPL文件

本文详细介绍了将Apache Hop集成到Spring Boot应用中的完整实战方案。通过配置核心依赖、初始化Hop环境、编写服务层逻辑,实现了在Java应用中程序化执行HPL管道文件,从而将可视化ETL能力无缝嵌入微服务架构,提升数据处理的自动化与可维护性。

blue42的博客 476

14、脑肿瘤复发预测与转移瘤跟踪的自动化方法

本文介绍两种脑肿瘤相关自动化方法:一种用于预测胶质瘤切除术后的肿瘤复发位置,结合图像配准、静态模型和动态模拟模型,利用患者的DTI数据进行预测;另一种用于在纵向扫描中跟踪转移性脑肿瘤,通过联合求解配准参数估计和图像变化标记问题,提高肿瘤跟踪的准确性和效率。文章同时分析了两种方法的优势与挑战,并提出了未来研究方向,旨在为脑肿瘤的诊断和治疗提供更可靠的工具。

defi6farmer的博客 115

hdu 3433

A Task Process Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1171    Accepted Submission(s): 585 Problem Description There are two ki

Vgo__的专栏 861

DCDC电路断电时放电波形发生震荡和电压跳变问题,如何解决?

DCDC电路断电时放电波形发生震荡和电压跳变问题: 做的一个项目需要用单片机ADC采集电压,要让单片机感应到电压降到3.1V开始往FLASH里存数据,单片机2.4V基本上就工作不了,(根据单片机手册的,擦写的时间在40mS在左右)所以3.1V降到2.4V的时间必须要大于40mS岁以上,在单片机VCC处加了一个100nF的电容,理论仿真下来150mS左右发现存不进去,用示波器抓了一下波形,发现放电时震荡很严重,实际3.1V到2.4V时间只有10ms左右,这个肯定存不进去; 请教师傅说是应该时前级DCDC开关电

**My Coding Family** 1967

hdu 3433 A Task Process 二分+dp

A Task Process Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1332    Accepted Submission(s): 656 Problem Description There are tw

阳光下的泡沫 532

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

hdu3433 A Task Process dp+二分

//time时间内 dp[i][j]前i个人中完成j个A任务后最多能完成多少B任务 // dp[i][j] = max(dp[i][j],(time - k*a[i])/b[i]+dp[i-1][j-k]); //由于time越大,dp[i][j]越大,故可以用二分找到最小的time的值 #include #include #include using namespace std;

ijbuhv的专栏 699

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

二分+DP HDU 3433 A Task Process

HDU 3433 A Task Process Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1368Accepted Submission(s): 684 Problem Description There are t...

weixin_30432579的博客 147

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

hdu 3433 A Task Process(二分答案+dp)

题意:给你x个A任务,y个B任务,然后有n个工人,每个工人完成A任务的时间为aia_i,完成B任务的时间为bib_i,几个工人可以同时开工,问你最少需要多少时间,能够完成所有任务。感觉是dp,dp[i][x][y]dp[i][x][y]表示到第i个工人位置做了x个A工作y个B工作需要的最少时间,但是这样的状态是O(nxy)O(nxy),转移是O(xy)O(xy),时间上肯定超时。 于是这题需要换个

Miracle_ma的专栏 551

HDU 3433 (DP + 二分) A Task Process

题意: 有n个员工,每个员工完成一件A任务和一件B任务的时间给出,问要完成x件A任务y件B任务所需的最短时间是多少 思路: DP + 二分我也是第一次见到,这个我只能说太难想了,根本想不到。 dp[i][j]表示在t时间内前i个人完成j件A任务后所能完成B任务的最大数量。 代码中还有一些注释。 1 //#define LOCAL 2 #include <ios...

weixin_30539835的博客 111

hdu3433A Task Process( 二分dp)

链接 二分时间,在时间内dp[i][j]表示截止到第i个人已经做了j个A最多还能做多少个B #include <iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<stdlib.h> #include<vector&...

weixin_30375427的博客 120

hdu 3433 A Task Process N个人,第i个人完成一个A任务需要时间ai,完成一个B任务需要时间bi, 现在又X个任务A和Y个任务B,求完成所有任务所需要的最短时间。

Problem Description There are two kinds of tasks, namely A and B. There are N workers and the i-th worker would like to finish one task A

kongming_acm的专栏 4902

HDU 3433 A Task Process

A Task Process Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1340    Accepted Submission(s): 663 Problem Description There are two ki

343

hdu 3433 A Task Process

重新开始做去年多校联合训练的,准备今年的多校联合训练的,水一水吧//二维的 #include #include #define MAX(a,b) ((a)>(b)?(a):(b)) #define MIN(a,b) ((a)<(b)?(a):(b)) in

hqd_acm的专栏 762

hdu3433(dp+二分)

链接:点击打开链接 题意:给出两种任务A,B,和n个人每个人做每件事的时间,n个人可以同时做同一种的事情,但是不能做A的同时做B,求完成所有的任务最小的时间是多少 代码:#include #include #include #include #include using namespace std; const int INF=0x3f3f3f3f; int n,X,Y,a[55],

stay_accept的专栏 842

HDU 5629 Clarke and tree(Purfer序列+dp+组合数学)

Description 给出n个正整数ai,现从n个点中选s个点构成一棵树,使得编号为i的节点度数不超过ai,问所有可能情况数 Input 第一行一整数T表示用例组数,每组用例首先输入一整数n,之后n个整数ai (1<=T<=10,2<=n<=50,1<=ai < n) Output 对于每组用例,输出n个数,第s个数表示节点数为s的合法的树的数量,结果模1e9+7(1<=s<=n)

ZSQ 896
上一篇: Codeforces Round #280 (Div. 2) D
下一篇: hdu 3448(搜索+剪枝)Bag Problem
Notdeep__acm
博客等级 码龄12年 20粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值