当前位置: 首页 > article >正文

C语言 | Leetcode C语言题解之第526题优美的排列

题目:

题解:

int countArrangement(int n) {
    int f[1 << n];
    memset(f, 0, sizeof(f));
    f[0] = 1;
    for (int mask = 1; mask < (1 << n); mask++) {
        int num = __builtin_popcount(mask);
        for (int i = 0; i < n; i++) {
            if (mask & (1 << i) && (num % (i + 1) == 0 || (i + 1) % num == 0)) {
                f[mask] += f[mask ^ (1 << i)];
            }
        }
    }
    return f[(1 << n) - 1];
}

http://www.kler.cn/a/375643.html

相关文章:

  • EtherCAT转ModbusTCP相关技术
  • Manus在虚拟现实仿真模拟中的应用案例分享
  • C#的起源。J++语言的由来?J#和J++傻傻分不清?
  • xlrd.biffh.XLRDError: Excel xlsx file; not supported
  • Ubantu/Linux 采用Repo或Git命令报错!!
  • 服务器宝塔安装哪吒监控
  • C++基本语法
  • 如何在Linux系统中使用Ansible进行自动化部署
  • 手机玩潜水员戴夫?GameViewer远程如何随时随地玩潜水员戴夫教程
  • node.js模块化分析
  • C++ 文件操作详解
  • 多线程2之线程同步
  • 考研要求掌握的C语言(二叉排序树专题)
  • blender 小车建模 建模 学习笔记
  • C++之多态(上)
  • [实时计算flink]CREATE TABLE AS(CTAS)语句
  • 部署服务器监控集群之“Prometheus Grafana Alertmanager“
  • 智慧城市:未来城市的蓝图
  • Jupyter Notebook 打开指定文件夹
  • Straightforward Layer-wise Pruning for More Efficient Visual Adaptation
  • 用示波器如何测量信号的相位差?
  • 鸿蒙系统不断发展的看法
  • Python实现Lucas-Lehmer测试
  • Android 滴滴面经
  • No.22 笔记 | WEB安全 - 任意文件绕过详解 part 4
  • 深入理解数据库的三范式