[HNOI2001]产品加工 原创 fish04 2022-05-27 19:58:17 博主文章分类:dp ©著作权 文章标签 #include #define i++ 文章分类 后端开发 ©著作权归作者所有:来自51CTO博客作者fish04的原创作品,请联系作者获取转载授权,否则将追究法律责任 题目描述某加工厂有A、B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成。由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加工,所完成任务又会不同。某一天,加工厂接到n个产品加工的任务,每个任务的工作量不尽一样。你的任务就是:已知每个任务在A机器上加工所需的时间t1, B机器上加工所需的时间t2及由两台机器共同加工所需的时间t3,请你合理安排任务的调度顺序,使完成所有n个任务的总时间最少。输入输出格式输入格式:(输入文件共n+1行)第1行为 n。 n是任务总数(1≤n≤6000)第i+1行为3个[0,5]之间的非负整数t1,t2,t3,分别表示第i个任务在A机器上加工、B机器上加工、两台机器共同加工所需要的时间。如果所给的时间t1或t2为0表示任务不能在该台机器上加工,如果t3为0表示任务不能同时由两台机器加工。输出格式:最少完成时间输入输出样例输入样例#1:复制5 2 1 00 5 02 4 10 0 32 1 1输出样例#1: 复制9dp[ i ] 表示 A用时 i 时,B 用时的最短时间;进程dp;#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include//#include//#pragma GCC optimize("O3")using namespace std;#define maxn 200005#define inf 0x3f3f3f3f#define INF 999999999#define rdint(x) scanf("%d",&x)#define rdllt(x) scanf("%lld",&x)#define rdult(x) scanf("%lu",&x)#define rdlf(x) scanf("%lf",&x)#define rdstr(x) scanf("%s",x)typedef long long ll;typedef unsigned long long ull;typedef unsigned int U;#define ms(x) memset((x),0,sizeof(x))const long long int mod = 1e9 + 7;#define Mod 1000000000#define sq(x) (x)*(x)#define eps 1e-3typedef pair pii;#define pi acos(-1.0)const int N = 1005;#define REP(i,n) for(int i=0;i<(n);i++)typedef pair pii;inline ll rd() { ll x = 0; char c = getchar(); bool f = false; while (!isdigit(c)) { if (c == '-') f = true; c = getchar(); } while (isdigit(c)) { x = (x << 1) + (x << 3) + (c ^ 48); c = getchar(); } return f ? -x : x;}ll gcd(ll a, ll b) { return b == 0 ? a : gcd(b, a%b);}ll sqr(ll x) { return x * x; }/*ll ans;ll exgcd(ll a, ll b, ll &x, ll &y) { if (!b) { x = 1; y = 0; return a; } ans = exgcd(b, a%b, x, y); ll t = x; x = y; y = t - a / b * y; return ans;}*/ll qpow(ll a, ll b, ll c) { ll ans = 1; a = a % c; while (b) { if (b % 2)ans = ans * a%c; b /= 2; a = a * a%c; } return ans;}int dp[maxn];int n;int sum;int a[maxn], b[maxn], c[maxn];int main(){ //ios::sync_with_stdio(0); //rdint(n); n = rd();// for (int i = 1; i <= n; i++) { // if (a[i] == 0)a[i] = inf; if (b[i] == 0)b[i] = inf; if (c[i] == 0)c[i] = inf; // } memset(dp, 0x3f, sizeof(dp)); dp[0] = 0; for (int i = 1; i <= n; i++) { // rdint(a[i]); rdint(b[i]); rdint(c[i]); a[i] = rd(); b[i] = rd(); c[i] = rd(); sum += max(a[i], max(b[i], c[i])); for (int j = sum; j >= 0; j--) { if (b[i])dp[j] += b[i]; else dp[j] = inf; if (a[i] && j >= a[i])dp[j] = min(dp[j], dp[j - a[i]]); if (c[i] && j >= c[i])dp[j] = min(dp[j], dp[j - c[i]] + c[i]); } } int Min = inf; for (int i = 0; i <= sum; i++)Min = min(Min, max(i, dp[i])); printf("%d\n", Min); return 0;} EPFL - Fighting 赞 收藏 评论 分享 举报 上一篇:NOIp 2018 货币系统 贪心 下一篇:CF987B High School: Become Human 数学 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 smallpdf: 免费高效的PDF水印添加工具 smallpdf是一款易于使用的工具,旨在帮助用户为PDF文件批量添加水印。该工具支持多种水印类型,包括文本水印和图像水印,并且能够处理大型PDF文件,确保即使是对较大的文档进行操作也能保持高效。 公众号 pdf pdf加水印 突发!测试OpenAI新产品——sora 哈喽大家好,我是chowley, 最近sora真是垄断了科技区的话题榜,几乎每个技术博主都上来讲两句我在半年前也是一名深度学习的研究者,今天我以测试开发工程师的视角来解读一下sora!首先打开OpenAI的sora页面,映入眼帘的就是文字+背景视频的介绍视频相信大家在网上已经看过不少了,简单来说就是我输入一段文字描述一个场景,然后sora来理解文本、生成视频,那如果我是OpenAI的QA会如何测试 接口测试 代码测试 UI 产品分支管理与团队协作 产品分支管理与团队协作 分支管理 迭代 团队协作 BZOJ 1222: [HNOI2001]产品加工 dp 1222: [HNOI2001]产品加工Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 721 Solved: 462 #include Memory ios BZOJ 1222: [HNOI2001]产品加工 动态规划 这种多线程问题可以采用一维枚举,另一位用 dp 求解最优解来实现. 这道题和那个 ZJOI 的食堂排队的题挺像的. code: #include <bits/stdc++.h> #define ll long long #define inf 0x3f3f3f3f #define N 508000 代码 BZOJ 1222 [HNOI2001]产品加工 动态规划 Description某加工厂有A、B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成。由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加工,所完成任务又会不同。某一天,加工厂接到n个产品加工的任务,每个任务的工作量不尽一样。你的任务就是:已知每个任务在A机器上加工所需的时间t1, B机器上加工所需的时间t2及由两台机 i++ #include c++ P2224 [HNOI2001]产品加工(进程dp) 这种dp见过,但还是完全没思路呢…首先状态太多,考虑用数组的值储存状态,具体的意思是首先状态太多,考虑用数组的值储存状态,具体的意思是首先状态太多 i++ 数组 #include BZOJ1222: [HNOI2001]产品加工(诡异背包dp) Description 某加工厂有A、B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成。由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加工,所完成任务又会不同。某一天,加工厂接到n个产品加工的任务,每个任务的工作量不尽一样。 c语言 解题 BZOJ [HNOI2001]求正整数 dfs 题目描述 对于任意输入的正整数 nn n,请编程求出具有 nn n个不同因0000)n(1≤n≤500... i++ #define 输入输出 BZOJ 1222: [HNOI2001]产品加工 我也不知道叫什么的DP Description某加工厂有A、B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成。由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加工,所完成任务又会不同。某一天,加工厂接到n个产品加工的任务,每个任务的工作量不尽一样。你的任务就是:已知每个任务在A机器上加工所需的时间t1, B机器上加工所需的时间t2及由两台机器共同加 i++ 最小值 数据 【BZOJ】1225: [HNOI2001] 求正整数 http://www.lydsy.com/JudgeOnline/problem.php?id=1225题意:给一个数n,求一个最小的有n个约数的正整数。(nusing namespace std;struct inum { static const int N=10005, MOD=10000; ... OI 搜索 bzoj #include 高精 【BZOJ】【1221】【HNOI2001】软件开发 网络流/费用流 说是这题跟餐巾计划一模一样……但我没做过啊……so sad 二分图建模是很好想的,但是要控制流量跟用了的毛巾一样多……oh my god 事实上对于每一天我们无论如何都是要消耗n[i]条毛巾的,那么我们可以直接连边 i->T 容量为n[i],费用为0。 那么只需要考虑这n[i... BZOJ 网络流 思路题 费用流 #include Bzoj1222 [HNOI2001]产品加工 动态规划 类背包 #include 动态规划 ios 01背包 技术 P2224 [HNOI2001]产品加工 Jisoo 这种背包是不是把一维扔进状态就都能做了啊 $dp_{i,j}$表示到了第i个任务的时候A机器工作了j时间,转移显然 有点卡时间,注意常数优化 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> ... #include ios 卡时间 编程题 bzoj1222: [HNOI2001]产品加工 一开始以为是费用流。。然后搞不出来,路牌是DP,想一想 f[i][j]表示加工到第i个产品,然后A用时j,B用时的最小值 那么f[i][j]=max(f[i-1][j-a[i]],f[i-1][j]+b[i],f[i-1][j-c[i]]+c[i]) 滚掉一维美滋滋 #include i++ 最小值 ios 费用流 P2224 [HNOI2001]产品加工 降维dp 题目描述 某加工厂有A、B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成。由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加工,所完成任务又会不同。某一天,加工厂接到n个产品加工的任务,每个任务的工作量不尽一样。 你的任务就是 #define i++ 输入输出 输出格式 #include 洛谷 P2224 [HNOI2001]产品加工 解题报告 P2224 [HNOI2001]产品加工 题目描述 某加工厂有A、B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成。由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加工,所完成任务又会不同。某一天,加工厂接到n个产品加工的任务 dp 状态设计 常数优化 i++ 滚动数组 [HNOI2001]矩阵乘积 题目描述 输入输出格式 输入格式: 第1行为:x y (第1行为两个正整数:x,y分别表示输出结果所在的行和列) 第2行为:m n o p(第2行给出的正整数表明A为m×n矩阵,B为n×o矩阵,C为o×p矩阵) 第3行为:i j a(第3行以后的每一行有三个整数分别是矩阵的三元组表示法中的一个元素的 矩阵 #include 数据 输入输出 三元组 [HNOI2001]软件开发 题目描述 某软件公司正在规划一项n天的软件开发计划,根据开发计划第i天需要ni个软件开发人员,为了提高软件开发人员的效率,公司给软件人员提供了很多的 服务,其中一项服务就是要为每个开发人员每天提供一块消毒毛巾,这种消毒毛巾使用一天后必须再做消毒处理后才能使用。消毒方式有两种,A种方式的消毒需要 a天 网络流 #include i++ 软件开发 出点 [HNOI2001]求正整数 题目描述 对于任意输入的正整数n,请编程求出具有n个不同因子的最小正整数m。 例如:n=4,则m=6,因为6有4个不同整数因子1,2,3,6;而且是最小的有4个因子的整数。 输入输出格式 输入格式: n(1≤n≤50000) 输出格式: m 输入输出样例 输入样例#1: INT.IN 4 输出样例# 数论 #include i++ 输入输出 ios java map线程安全吗 一直以来都知道HashMap是线程不安全的,但是到底为什么线程不安全,在多线程操作情况下什么时候线程不安全?让我们先来了解一下HashMap的底层存储结构,HashMap底层是一个Entry数组,一旦发生Hash冲突的的时候,HashMap采用拉链法解决碰撞冲突,Entry内部的变量: [java] view plain java map线程安全吗 java 数据结构与算法 数组 链表 esb和mq 今天听IBM的工程师介绍了MQ和MB的特性,以及他们的区别与联系,觉得很通俗易懂,特此记录,方便将来的初学者可以更快的把握这两者的特点。首先从概念上来说,MQ是消息中间件,MB是ESB产品MQ负责在两个系统之间传递消息,这两个系统可以是异构的,处于不同硬件、不同操作系统、用不同语言编写,只需要简 单的调用几个MQ的API,就可以互相通讯,你不必考虑底层系统和网络的复杂性。MQ作为IBM的一个拳 esb和mq 系统架构 java 操作系统 业务逻辑 androidcolor透明 文章目录Xfermod 使用步骤合成方程 ( Compositing equations )老版本的表示方法合成模式 相关 区域 Xfermod 使用步骤 Xfermod 使用步骤 : ① 创建画笔 : 注意 , 绘制 源图像 和 目标图像 , 以及设置 Xfermod 图形组合模式 , 使用的都是这个画笔 ;//创建画笔 Paint paint = new Paint(); ② 绘制 目标 androidcolor透明 Xfermod Xfermod步骤 合成方程 颜色值 造电商mysql千万商品数据 oracle集群Oracle RAC是业界最流行的产品。其架构的最大特点是共享存储架构(Shared-disk),整个RAC集群是建立在一个共享的存储设备之上的,节点之间采用 高速网络互连。在 Oracle RAC 环境中,每个 Oracle 数据块都被赋予一个(且只有一个)“主”Oracle RAC 节点。该 Oracle RAC 节点的全局缓存服务 (GCS) 负责管理对这些数据块集的访问。当 造电商mysql千万商品数据 数据库 memcached 运维 数据 如何查看未运行容器日志 大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。电脑点不开任何软件,可能是电脑设置有误导致的,具体解决方法如下:1、首先在桌面鼠标右键单击计算机属性。2、计算机属性界面,点击左侧的高级系统设置。3、进入高级选项,点击性能下的设置选项。4、进入性能设置面板,点击执行数据保护选项卡。5、进入数据保护选项卡,单击去掉选项勾选。6、接着点击添加按钮。7、将无法打开的应用添加进来并单击打 如何查看未运行容器日志 数据保护 选项卡 系统设置