Smallest number(dfs全排列)

news/2024/7/20 23:06:09 标签: 算法, c++, 深度优先

Smallest number - 洛谷

 

#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[10];
string s[5];
bool vis[10];
int ans=1e13;//0x3f=1e9,所有有点不够
void dfs(int u)
{
//    for(int i=0;i<4;i++)
//    {
//        printf("%d ",a[i]);
//    }
//    printf("\n");
//    for(int i=0;i<4;i++)
//    {
//        printf("%d ",vis[i]);
//    }
//    printf("\n");
    if(u==3)
    {
        for(int i=0;i<4;i++)
        {
            if(vis[i]==0)
                ans=min(ans,a[i]);//没有被记录的数就是最终结果,求最小
        }
//        printf("return\n");
        return;
    }
    for(int i=0;i<4;i++)
    {
        if(vis[i])continue;
        for(int j=0;j<4;j++)
        {
            if(j==i||vis[j])continue;//若为同一个数或已被选用,跳过
            int last=a[j];//last不能为全局变量
            if(s[u]=="+")
            {
                vis[i]=1;
//                last=a[j];
                a[j]+=a[i];
                dfs(u+1);
                vis[i]=0;
                a[j]=last;
            }
            else if(s[u]=="*")
            {
                vis[i]=1;
//                last=a[j];
                a[j]*=a[i];
                dfs(u+1);
                vis[i]=0;
                a[j]=last;
            }
        }
    }
}
signed main()
{
    for(int i=0;i<4;i++)
    {
        scanf("%lld",&a[i]);
    }
    for(int i=0;i<3;i++)
    {
        cin>>s[i];
    }
    dfs(0);
    printf("%lld\n",ans);
}


http://www.niftyadmin.cn/n/5014098.html

相关文章

franka_ros中的一些子包的使用

franka_visualization包 该软件包包含连接到机器人并发布机器人和夹爪关节状态以在 RViz 中进行可视化的发布者。要运行此包启动&#xff1a; roslaunch franka_visualization franka_visualization.launch robot_ip:<fci-ip> \load_gripper:<true|false> 比如&a…

【山河送书第十期】:《Python 自动化办公应用大全》参与活动,送书两本!!

【山河送书第十期】&#xff1a;《Python 自动化办公应用大全》参与活动&#xff0c;送书两本&#xff01;&#xff01; 前言一书籍亮点二作者简介三内容简介四购买链接五参与方式六往期赠书回顾 前言 在过去的 5 年里&#xff0c;Python 已经 3 次获得 TIOBE 指数年度大奖&am…

开开心心带你学习MySQL数据库之第七篇

MySQL提供的约束 1.not null 2.unique 3.default 4.primary key 5.foreign key 表的设计 找到实体确定实体间的关系 一对一一对多多对多 聚合查询 ~~行之间的运算 ~~聚合函数 ~~分组group by 联合查询 ~~多表查询 ~~笛卡尔积: 把两个表放到一起进行排列组合 班级表 cla…

【Linux】Qt Remote之Remote开发环境搭建填坑小记

总体思路 基于WSL2&#xff08;Ubuntu 22.04 LTS&#xff09;原子Alpha开发板进行Qt开发实验&#xff0c;基于Win11通过vscode remote到WSL2&#xff0c;再基于WSL2通过Qt 交叉编译&#xff0c;并通过sshrsync远程到开发板&#xff0c;构建起开发工具链。 Step1 基于Win11通过…

leetcode-779. 第K个语法符号(java)

第K个语法符号 题目描述递归代码演示 题目描述 难度 - 中等 LC- 779. 第K个语法符号 我们构建了一个包含 n 行( 索引从 1 开始 )的表。首先在第一行我们写上一个 0。接下来的每一行&#xff0c;将前一行中的0替换为01&#xff0c;1替换为10。 例如&#xff0c;对于 n 3 &#…

软件测试技术题目大全【含答案】

请看下面 你的测试职业发展是什么?  测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自己&#x…

TCP IP网络编程(五) 基于TCP的服务器端、客户端 (补充)

文章目录 回声客户端的完美实现回声客户端出现的问题回声客户端问题解决方法 TCP原理TCP套接字中的I/O缓冲TCP内部工作原理1&#xff1a;与对方套接字的连接TCP内部工作原理2&#xff1a;与对方主机的数据交换TCP内部工作原理3&#xff1a;断开与套接字的连接 总结 回声客户端的…

华为OD机试-仿LISP运算

题目描述 代码实现 # coding:utf-8 # 仿LISP运算 # https://www.nowcoder.com/discuss/360006188531032064?sourceSSRsearch import systry:while True:line sys.stdin.readline().replace((, ( ).replace(), )).strip().split( )if line :breakstack []op []error_flag…