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. 用plsql 导入导出oracle表结构数据

    一.导出 (1)导出数据 进入pl/sql,"工具"---->"Export Tables...",然后在弹出的对话框中选择要导出的表,最后点击" ...

  2. kendo-ui的MVVM模式

    摘要: MVVM(Model View ViewModel)是一种帮助开发者将数据从模型分离的设计模式.MVVM的ViewModel负责将数据对象从模型中分离出来,通过这种方式数据就很容易控制数据如何 ...

  3. pom.xml 配置maven私服

    1.pom.xml 配置maven私服 <repositories>       <repository>        <id>caf_repositories& ...

  4. Sql Server 跨服务器连接

    用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset --查询示例 select * from openrowset('SQLOLEDB', 'sql服 ...

  5. Java -- 异常的捕获及处理 -- Java的异常处理机制

    7.1.4 Java的异常处理机制 在整个Java的异常处理中,实际上也是按照面向对象的方式进行处理,处理的步骤如下: ⑴ : 一旦产生异常,则首先会产生一个异常类的实例化对象. ⑵ : 在try语句 ...

  6. IIS URL Rewrite – Installation and Use

    IIS URL Rewrite – Installation and Use Posted by Nick LeFevre | Leave a reply IIS URL Rewrite Instal ...

  7. Nginx 默认虚拟主机

    一台服务器可以配置多个网站,每个网站都称为一个虚拟主机,默认的虚拟主机可以通过 default_server 来指定:: [root@localhost ~]$ cat /usr/local/ngin ...

  8. Unity关闭shader中的光照模型以及如何自定义光照模型

    // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject' // Upgrade NOTE: replaced '_Wor ...

  9. Unity Shader 修改自定义变量的值

    Properties { _R(,)) = 1.0 _ColorTex("ColorTex (RGB)", 2D) = "red" {} } SubShader ...

  10. thrift安装及使用

    下载Thrift:http://thrift.apache.org/download ■ 将thrift-0.11.0.exe重命名为thrift.exe: ■ 解压thrift-0.11.0.tar ...