Codeforces Round #379 (Div. 2) B. Anton and Digits

本文解析了CodeForces竞赛中一道题目,该题要求利用2、3、5、6这四个数字组合成尽可能多的32和256,以达到总和的最大值。通过贪心算法优先组合256的方式解决此问题,并提供了完整的C++实现代码。

链接:http://codeforces.com/contest/734/problem/B

题意:用2,3,5,6组成若干个32和256,求总和最大能组成多少。

分析:贪心优先组256即可。

代码:

#include<map>
#include<set>
#include<stack>
#include<cmath>
#include<queue>
#include<bitset>
#include<math.h>
#include<vector>
#include<string>
#include<stdio.h>
#include<cstring>
#include<iostream>
#include<algorithm>
#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;
typedef double db;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
const db eps=1e-5;
const int N=1e6+10;
const int M=4e6+10;
const ll MOD=1000000007;
const int mod=1000000007;
const int MAX=1000000010;
const double pi=acos(-1.0);
int main()
{
    ll a,b,c,d,ans=0;
    scanf("%I64d%I64d%I64d%I64d", &a, &b, &c, &d);
    ans+=1ll*256*min(a,min(c,d));
    a-=min(a,min(c,d));
    ans+=1ll*32*min(a,b);
    printf("%I64d\n", ans);
    return 0;
}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值