首页 > 其他 > 详细

Codeforces 55B Smallest number(大力搜)

时间:2020-07-21 12:36:24      阅读:112      评论:0      收藏:0      [点我收藏+]

题目链接

解题思路

??一共就4个数,分3步,每次让两个数通过乘或加合并成一个数,数据范围很小,所以直接大力搜就是了。

代码

ll a[4], ans = LLONG_MAX;
bool vis[maxn];
string s;
void dfs(int p) {
    if (p==3) {
        for (int i = 0; i<4; ++i)
            if (!vis[i]) ans = min(ans,a[i]);
        return;
    }
    for (int i = 0; i<4; ++i) 
        for (int j = 0; j<4; ++j)
            if (i!=j && !vis[i] && !vis[j]) {
                vis[i] = true;
                ll tmp = a[j];
                if (s[p]==‘*‘) a[j] *= a[i];
                else a[j] += a[i];
                dfs(p+1);
                a[j] = tmp;
                vis[i] = false;
            }
}
int main() {
    for (int i = 0; i<4; ++i) scanf("%lld",&a[i]);
    char ch[2]; 
    for (int i = 0; i<3; ++i) {
        scanf("%s",ch); s += ch[0];
    }
    dfs(0);
    printf("%lld\n",ans);
    return 0;                                                                 
}

Codeforces 55B Smallest number(大力搜)

原文:https://www.cnblogs.com/shuitiangong/p/13353625.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!