zoukankan      html  css  js  c++  java
  • 磁石合成(枚举 + 思维)

    另一个平行宇宙的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

    2
    1 1 1
    1 2 3
    10 23 15
    5 4 9
    

    Sample Output

    3
    175
    

    Hint

    第一个样例由于每种怪物只有一只,因此它选择融合出战斗力最为强大的磁石战士βγ,答案为3

    long long类型请用%I64d输出

    刚开始想的是先合成能量最大的那一个,然后再根据能量的大小依次往下合成,但是这样合成的结果并不是最优的,由于所给数据较少,所以,可以用枚举的方法来进行比较

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    typedef long long ll;
    using namespace std;
    int main()
    {
    	int t;
    	int i,j;
    	ll sum;
    	scanf("%d",&t);
    	while(t--)
    	{
    		sum = 0;
    		ll a,b,c;
    		ll fa,fb,fc;
    		ll t1,t2,t3; 
    		ll ab,ac,bc;
    		scanf("%lld %lld %lld %lld %lld %lld",&a, &b, &c, &ab, &ac, &bc);
    		t1 = min(a, b);
    		for(i=0; i<=t1; i++)
    		{
    			fa = a, fb = b, fc = c;
    			fa -= i;
    			fb -= i;
    			if(ac > bc)
    			{
    				t2 = min(fa, fc);
    				fc -= t2;
    				t3 = min(fb, fc);
    				sum = max(sum, i * ab + t2 * ac + t3 * bc);
    			}
    			else
    			{
    				t2 = min(fb, fc);
    				fc -= t2;
    				t3 = min(fc, fa);
    				sum = max(sum, i * ab + t2 * bc + t3 * ac);
    			}
    		}
    		printf("%I64d
    ",sum);
    	}
    	return 0;
    }
     
    

     

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    洛谷—— P3353 在你窗外闪耀的星星
    洛谷—— P1238 走迷宫
    洛谷—— P1262 间谍网络
    9.8——模拟赛
    洛谷—— P1189 SEARCH
    算法
    May 22nd 2017 Week 21st Monday
    May 21st 2017 Week 21st Sunday
    May 20th 2017 Week 20th Saturday
    May 19th 2017 Week 20th Friday
  • 原文地址:https://www.cnblogs.com/h-hkai/p/7631284.html
Copyright © 2011-2022 走看看