Problem 2252 Yu-Gi-Oh!

Accept: 105    Submit: 628

Time Limit: 1000 mSec    Memory Limit : 32768 KB

 Problem Description

另一个平行宇宙的YellowStar,是一名游戏王决斗者,某一天它正在进行一场决斗,它的场面上拥有A只磁石战士a,B只磁石战士β,C只磁石战士γ。

现在它要把这些怪物进行一波强力的融合,并且它知道:

将磁石战士a和β融合成为磁石战士aβ,战斗力为AB

将磁石战士a和γ融合成为磁石战士aγ,战斗力为AC

将磁石战士β和γ融合成为磁石战士βγ,战斗力为BC

由于YellowStar是一名人生经验丰富的决斗者,因此它在本回合可以进行无限次的融合。它想知道经过融合它能得到最大的战斗力是多少。

 Input

第一行输入T,表示有T组样例(T <= 20)

每组样例为两行,每行3个数字

第一行为A, B, C (1 <= A, B, C <= 1e6),表示每种怪物的数量

第二行为AB, AC, BC (1 <= AB, AC, BC <= 1e6),分别表示AB,AC,BC融合之后的战斗力

 Output

每组样例输出一个数字表示答案

 Sample Input

21 1 11 2 310 23 155 4 9

 Sample Output

3175

枚举加贪心。一开始贪心的策略是,选择三种组合最优的,然后剩下的再组合,很容易找到反例。
然后又想了一个贪心策略,一种组合既然选择了,那么这种组合就应该全部组合尽,然后去枚举组合。也找到了反例。
最后的贪心策略是,只有两种组合的时候,这个时候,肯定是选择最优的优先组合,比如ab,bc两种组合ab>bc,一定是先组合ab,
再组合bc.这样我们再枚举ac组合,就可以了。有时候,ab,bc,ac三种组合很难做出贪心策略。我们应该把问题简单化、
复杂的问题简单化,再去枚举就好了。
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <map>
#include <stack>
#include <queue> using namespace std;
typedef long long int LL;
int t;
LL a,b,c;
LL ab,ac,bc;
LL xab,xac,xbc;
int main()
{
scanf("%d",&t);
while(t--)
{ scanf("%lld%lld%lld",&a,&b,&c);
scanf("%lld%lld%lld",&ab,&ac,&bc);
xab=min(a,b);
xbc=min(b,c);
xac=min(a,c);
LL xa=a,xc=c,xb=b;
LL ans=0;
while(xab>=0)
{
xa=a-xab;
xb=b-xab;
if(ac>bc)
{
if(xc>xa)
ans=max(ans,xab*ab+ac*xa+bc*min(xb,(xc-xa)));
else
ans=max(ans,xab*ab+ac*xc);
}
else
{
if(xc>xb)
ans=max(ans,xab*ab+bc*xb+ac*min(xa,(xc-xb)));
else
ans=max(ans,xab*ab+bc*xc);
}
xab--;
}
xa=a;
while(xbc>=0)
{
xb=b-xbc;
xc=c-xbc;
if(ab>ac)
{
if(xa>xb)
ans=max(ans,xbc*bc+ab*xb+ac*min(xc,(xa-xb)));
else
ans=max(ans,xbc*bc+ab*xa);
}
else
{
if(xa>xc)
ans=max(ans,xbc*bc+ac*xc+ab*min(xb,(xa-xc)));
else
ans=max(ans,xbc*bc+ac*xa);
}
xbc--;
}
xb=b;
while(xac>=0)
{
xa=a-xac;
xc=c-xac;
if(ab>bc)
{
if(xb>xa)
ans=max(ans,xac*ac+ab*xa+bc*min(xc,(xb-xa)));
else
ans=max(ans,xac*ac+ab*xb);
}
else
{
if(xb>xc)
ans=max(ans,xac*ac+bc*xc+ab*min(xa,(xb-xc)));
else
ans=max(ans,xac*ac+bc*xb); }
xac--;
}
printf("%I64d\n",ans);
}
return 0;
}


FZU 2252 Yu-Gi-Oh!(枚举+贪心)的更多相关文章

  1. D. Diverse Garland Codeforces Round #535 (Div. 3) 暴力枚举+贪心

    D. Diverse Garland time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  2. 51nod1625(枚举&贪心)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1625 题意:中文题诶- 思路:枚举+贪心 一开始写的行和列同时 ...

  3. 枚举+贪心 HDOJ 4932 Miaomiao's Geometry

    题目传送门 /* 题意:有n个点,用相同的线段去覆盖,当点在线段的端点才行,还有线段之间不相交 枚举+贪心:有坑点是两个点在同时一条线段的两个端点上,枚举两点之间的距离或者距离一半,尽量往左边放,否则 ...

  4. [BZOJ 1028] [JSOI2007] 麻将 【枚举+贪心判断】

    题目链接:BZOJ - 1028 题目分析 枚举听的是哪种牌,再枚举成对的是哪种牌,再贪心判断: 从1到n枚举每一种牌,如果这种牌的个数小于0,就返回不合法. 将这种牌的张数 % 3, 剩下的只能和 ...

  5. 【枚举+贪心】【TOJ3981】【ICPC Balloons】

    给你N种不同颜色气球,每种气球有个数目 count[i],给的同种颜色气球可能是L尺寸,或M尺寸. M个问题,每个问题有个解决人数ac[i]. 每个问题 要分配一种颜色的气球,尺寸要一样 现在 这些气 ...

  6. 【枚举+贪心】【ZOJ3715】【Kindergarten Electiond】

    题目大意: n 个人 在选取班长 1号十分想当班长,他已经知道其他人选择了谁,但他可以贿赂其他人改选他,问贿赂的最小值 ps.他自己也要投一个人 要处理一个问题是,他自己投谁 其实这个问题在这种局面下 ...

  7. UVALive 6912 Prime Switch 暴力枚举+贪心

    题目链接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show ...

  8. bzoj1050[HAOI2006]旅行comf(枚举+贪心+并查集)

    Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求一条路径,使得路径上最大 ...

  9. AtCoder - 2565 枚举+贪心

    There is a bar of chocolate with a height of H blocks and a width of W blocks. Snuke is dividing thi ...

随机推荐

  1. git同时提交到两个仓库

    有时候一个项目,希望既提交到oschina又提交到公司内网的gitlab,或者是github什么的. 使用git remote -v 查看当前git的远程仓库. 添加一个远程仓库 git remote ...

  2. Oauth2.0(二):开放平台

    上一节说到Oauth2.0 的交互模型.模型涉及到三方:资源拥有者.客户端.服务提供方.其中,服务提供方包含两个角色:鉴权服务器和资源服务器.鉴权服务器负责对用户进行认证,并授权给客户端权限.认证这一 ...

  3. [Module] 03 - Software Design and Architecture

    本篇涉及内容: ORM框架(无需再用contentprovider或者sqlitedatebasehelper之类的古董工具了) 规划各种业务Bean文件(配合ORM框架) 设计一个好的请求基类(Ba ...

  4. UpLoader------实现上传大文件

    代码: <div id="selectFile">选择文件1</div> <script> var da = newGuid(); var kk ...

  5. android 网络检测

    这个过程我觉得有必要记录一下事情的起因是这样的, 写的程序在虚拟机下面无法连接到服务器,首先想到的是,虚拟机能不能访问外网,打开某搜索网站,正常,想用ping命令来ping服务器,于是就有了下面的过程 ...

  6. iOS开发-- 如何让 UITableView 的 headerView跟随 cell一起滚动

    在我们利用 UITableView 展示我们的内容的时候,我需要在顶部放一个不同于一般的cell的 界面,这个界面比较独特. 1. 所以我就把它 作为一个section的 headerView. 也就 ...

  7. PHP 使用 Memcached

    PHP 想往 Memcached 中增删查改数据,需要先安装 memcache 扩展模块: cd /usr/local/src wget http://www.apelearn.com/bbs/dat ...

  8. JBuilder+struts一个常见异常

    [org.apache.commons.digester.Digester]-[ERROR] Parse Error at line 3 column 22: The content of eleme ...

  9. Linux下Apache网站目录读写权限的设置

    网站目录文件权限的设置对网站的安全至关重要,下面简单介绍网站目录文件权限的基本设定. 我们假设http服务器运行的用户和用户组是www,网站用户为centos,网站根目录是/home/centos/w ...

  10. 六、K3 WISE 开发插件《直接SQL报表开发新手指导 - BOM成本报表》

    ======================== 目录: 1.直接SQL报表 ======================== 1.直接SQL报表 以BOM成本报表为例,在销售模块部署,需要购买[金蝶 ...