G
N
I
D
A
O
L

天梯赛-谁去做这个工作


天梯赛-谁去做这个工作

#include 
using namespace std;
int t, w[10010][10010], minn = 0x3f3f3f3f;
bool vis[10010];
void dfs(int pos, int ww) {
    if(ww>=minn) return;
    if (pos == t) {
        minn = ww;
        return;
    }
    for (int i = 0; i < t; i++) {
        if (vis[i]) continue;
        vis[i] = true;
        dfs(pos + 1, ww + w[pos][i]);
        vis[i] = false;
    }
}
int main(void)
{
    cin >> t;
    for (int i = 0; i < t; i++)
        for (int j = 0; j < t; j++)
            cin >> w[i][j];
    dfs(0, 0);
    cout << minn;
    return 0;
}

文章作者: AnglesD
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 AnglesD !
评论
 上一篇
天梯赛-找密码 天梯赛-找密码
密码库中存放了学校所有学生的密码,所有学生的密码都是一个“万能密码串”的子序列,所谓子序列是指从最初序列通过去除某些元素但不破坏余下元素的相对位置(在前或在后)而形成的新序列。现在设计一个密码,要求是这个密码不是万能密码的子序列,而且长度最短。满足要求的密码有多少个?
2021-07-10
下一篇 
天梯赛-消消乐(简单) 天梯赛-消消乐(简单)
消消乐游戏开始有n个方块排成一行,每个方块有一个分数(分数有可能为负数)。游戏规则是可以选择若干对相邻的方块,让他们同时消除。每消除一对方块,要将游戏的分数加上这两个方块分数相乘的积,并且两个方块消除后还会占位,每个方块只能消除一次。
2021-07-10