Axles UVALive 7197
题意
您正在经营一家为无线电控制汽车生产定制车轴的机加工车间。这些车轴可以用钢或不锈钢制造,不锈钢零件的价格通常来自普通钢。您有两台CNC车床:一台配置生产不锈钢零件,另一台配置生产钢制零件。在给定的生产运行中,特定的零件设计只能分配给两台机器中的一台,即相同的零件设计可以用钢或不锈钢制造,但不能同时制造。零件由坚固的材料棒制成;今天你的库存水平相当低,你只有一根钢棒和一根不锈钢棒。零件设计选自库,其中每个零件根据生产它所需的库存材料长度列出,以及钢和不锈钢版本中零件的当前优质产量。您必须从库中选择一部分零件,并决定生产这些零件的副本数量,以及是否应使用钢或不锈钢生产给定零件,以最大限度地提高您的可用材料量。
题解
开始题意理解错,以为是个DAG上的动态规划。比完才发现是个01背包。根据题目要求枚举子集,再加上01背包就行。
AC代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <functional>
using namespace std;const int maxn = 1205;int dp1[maxn], dp2[maxn];
int w[20],v1[20],v2[20];
int n, x;int solve(int a, int b){memset(dp1, 0, sizeof(dp1));memset(dp2, 0, sizeof(dp2));for(int i = 0; i<n; i++){if((x&(1<<i)))for(int j = w[i]; j<=a; j++)dp1[j]=max(dp1[j], dp1[j-w[i]]+v1[i]);else for(int j = w[i]; j<=b; j++) dp2[j]=max(dp2[j], dp2[j-w[i]]+v2[i]);}return dp1[a]+dp2[b];
}int main(){while(scanf("%d",&n) != EOF && n!=-1){for(int i = 0; i<n; i++){scanf("%d%d%d", w+i, v1+i, v2+i);}int i,j, mx = 0;scanf("%d%d", &i, &j);for(x = 0; x<(1<<n); x++){int res = solve(i, j);if(mx<res)mx = res;}printf("%d\n", mx);}return 0;
}
Axles UVALive 7197相关推荐
- DP UVALive 6506 Padovan Sequence
题目传送门 /*题意:两行数字,相邻列一上一下,或者隔一列两行都可以,从左到右选择数字使和最大DP:状态转移方程:dp[i][j] = max (dp[i][j], dp[1-i][j-1] + a[ ...
- The UVALIVE 7716 二维区间第k小
The UVALIVE 7716 二维区间第k小 /** 题意:给一个n * n的矩阵,有q个查询每次查询r,c,s,k表示已(r,c)为右上角 大小为s的正方形中 第k小的元素n <= 250 ...
- UVALive 8513 lovers 2017 西安区域赛 B 贪心+multiset
UVALive 8513 有2种人,每个人有自己的权值$A_i$ $B_i$ 当$A_i + B_i >=K$时 两个人可以配对 问最多多少人可以配对 解法 : 把$/{ A_i /}$ 排序 ...
- 训练指南 UVALive - 3713 (2-SAT)
layout: post title: 训练指南 UVALive - 3713 (2-SAT) author: "luowentaoaa" catalog: true mathja ...
- 逆序数 UVALive 6508 Permutation Graphs
题目传送门 1 /* 2 题意:给了两行的数字,相同的数字连线,问中间交点的个数 3 逆序数:第一行保存每个数字的位置,第二行保存该数字在第一行的位置,接下来就是对它求逆序数 4 用归并排序或线段树求 ...
- Infinite Fraction Path UVALive - 8207
Infinite Fraction Path UVALive - 8207 题意: 给你n个数,每个数在0到9之间,每个数的下标一次是0~n-1,然后他所能走到的数为(i^2+1)%n,i为他本身的下 ...
- F - Heron and His Triangle UVALive - 8206
F - Heron and His Triangle UVALive - 8206 题意: 给你应该n,然后求一个最小的t,问长度为t-1,t,t+1所组成的三角形的面积为整数,t>=n 题解: ...
- Tree UVALive - 8212
Tree UVALive - 8212 题意: 有n个点,k个颜色,每个点都要被染色,相同颜色之间的边算是被该颜色覆盖,问有多少边被所有颜色覆盖 题解: 题目给的是无根树,我们可以将1默认为根然后求所 ...
- Rabbits UVALive - 8211
Rabbits UVALive - 8211 题意: n个兔子的位置,兔子每次可以跳到两个兔子之间,问最多可以跳多少下? 题解: 求出所有相邻两数的间隔,然后减去最小间隔就是答案 代码: #inclu ...
最新文章
- [机器学习笔记]Note14--推荐系统
- java list 比较相同的元素_java list 比较相同的元素 | 学步园
- hud抬头显示器哪个好_显示器TN、IPS、VA面板类型哪个好?
- Nginx 屏蔽ip地址的方法
- 六层电梯的PLC控制程序
- STM32 HAL库函数学习 UART篇
- php版本大屏幕,PHP现场抽奖大屏幕互动系统
- lua 随机数 math.random()和math.randomseed()用法
- PDF如何导出成图片,操作教程
- 在电脑上怎么做判断题打√或x_电脑基础知识竞赛试题
- 树莓派 交叉编译工具链的安装
- dockerfile unknown instruction:jar
- 安超云生态|安超云与长城超云完成兼容互认证 携手打造协同生态
- 影音服务器nas硬盘,手把手教您用win10做NAS:搭配emby,VM虚拟群晖,直通硬盘!打造家庭影音媒体服务器!...
- 穿越火线枪战王者服务器维护,穿越火线枪战王者-CF正版官方手游-官方网站-腾讯游戏...
- 具有DPP-4抑制活性的新型氨甲基联苯衍生物
- win10安装VMware死机
- 服务器升级如何维护,服务器维护更新升级的注意事项服务器教程 -电脑资料
- pycharm利用快捷键实现多选相同标签并修改
- 金蝶KIS专业版旗舰版 如何将物料属性中的科目代码设置默认值