LeetCode 996.正方形数组的数目

news2024/9/21 11:54:01

和上一道状压的区别在于我们要去重一下~

思路都是和上一篇博客是一样的,感兴趣的同学可以看一下

const int N = 15;
int dp[1<<N][N];
int n;
vector<int>nums1;

bool check(int x){
    int tem  = sqrt(x);
    if(tem*tem==x)return 1;
    return 0;
}


int dfs(int u,int id){
    if(u==0)return 1;
    if(~dp[u][id])return dp[u][id];

    int res = 0;
    for(int i=0;i<n;i++){
        if(((u>>i)&1) && check(nums1[i]+nums1[id]))
          res = res + dfs(u&~(1<<i),i);
    }

    return dp[u][id] = res;
}


class Solution {
public:
    int numSquarefulPerms(vector<int>& nums) {
        n = nums.size();
        nums1 = nums;
        memset(dp,-1,sizeof dp);
        int ans = 0;
        int u = (1<<n)-1;
        for(int i=0;i<n;i++)
         ans = ans + dfs(u&~(1<<i),i);
        

        map<int,int>mp;
        for(auto &t:nums)++mp[t];

        for(auto [_,cnt]:mp){
            while(cnt){
                ans/=cnt;
                cnt--;
            }
        }



        return ans;

    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1153095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

比较Excel中的两列目录编号是否一致

使用java代码比较excel中两列是否有包含关系&#xff0c;若有包含关系&#xff0c;核对编号是否一致。 excel数据样例如下&#xff1a; package com.itownet.hg;import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook;import j…

网站如何改成HTTPS访问

在今天的互联网环境中&#xff0c;将网站更改成HTTPS访问已经成为了一种标准做法。HTTPS不仅有助于提高网站的安全性&#xff0c;还可以提高搜索引擎排名&#xff0c;并增强用户信任。因此&#xff0c;转换为HTTPS是一个重要的举措&#xff0c;无论您拥有个人博客、电子商务网站…

如何将你的PC电脑数据迁移到Mac电脑?使用“迁移助理”从 PC 传输到 Mac的具体操作教程

有的小伙伴因为某一项工作或者其它原因由Windows电脑换成了Mac电脑&#xff0c;但是数据和文件都在原先的Windows电脑上&#xff0c;不知道怎么传输。接下来小编就为大家介绍使用“迁移助理”将你的通讯录、日历、电子邮件帐户等内容从 Windows PC 传输到 Mac 上的相应位置。 在…

PicoDiagnostics (NVH设备软件)-Mongoose识别不了VIN码

如果Mongoose J2534诊断线识别不到车辆的VIN码&#xff0c;通常在PD软件中会像下图那样提示。 遇到这种情况&#xff0c;首先确保你的电脑是否已经安装J2534驱动&#xff1a;打开【设备管理器】&#xff0c;如果你将示波器和Mongoose J2534诊断线连接到电脑&#xff0c;【设备管…

EtherCAT FP介绍系列文章—RAS

RAS扩展功能包是acontis公司在EC-Master EtherCAT主站基础上提供的一套基于TCP/IP的客户端/服务器架构的Remote API。Remote API旨在远程API提供了一个接口&#xff0c;解决在操作系统中当第二个进程&#xff08;例如OPC服务器&#xff09;可能访问EtherCAT总线的数据或在Ether…

oracle 校验左括号和有括号是否对称匹配

校验数据比如名称字段的左括号和有括号是否匹配。不匹配情况有&#xff1a; 左括号是英文的&#xff0c;右括号是中文的&#xff1b;右括号是中文的&#xff0c;左括号是英文的&#xff1b; 通过正则表达式对名称进行校验&#xff0c;校验脚本如下&#xff1a; SELECT NAMEFR…

超越YOLOv8?基于Gold YOLO的自定义数据集训练

Gold-YOLO的出色性能是对Noahs Ark Lab团队的奉献和专业知识的证明。它不仅超越了其前身YOLOv8&#xff0c;还为实时目标检测设定了新标准。凭借其闪电般快速的处理能力和出色的准确性&#xff0c;Gold-YOLO承诺革命化一系列应用&#xff0c;从自动驾驶车辆到监视系统等等。 我…

影响产品开发决策的认知偏见

认知偏见存在于每个人的内心&#xff0c;并在不断影响人们的工作和生活。认识并承认自己有偏见&#xff0c;并寻求相应的解决方案&#xff0c;可以帮助我们更好的做出产品决策、团队建设和架构设计。原文: The cognitive biases that influence product development decisions …

某国产中间件企业:提升研发安全能力,助力数字化建设安全发展

​某国产中间件企业是我国中间件领导者&#xff0c;国内领先的大安全及行业信息化解决方案提供商&#xff0c;为各个行业领域近万家企业客户提供先进的中间件、信息安全及行业数字化产品、解决方案及服务支撑&#xff0c;致力于构建安全科学的数字世界&#xff0c;帮助客户实现…

解决谷歌浏览器翻译插件不能用的问题

Chrome浏览器右键翻译页面现在已经不能用了 这是因为谷歌关闭了大陆内的谷歌翻译服务&#xff0c; 所以我们需要将Chrome浏览器的翻译域名指向国内可以用的域名 首先ping一下谷歌cn域名 ping google.cn PING google.cn (108.177.97.100) 56(84) bytes of data. 64 字节&#xf…

PHP在线客服系统平台系统源码+完全开源 带完整的搭建教程

在线客服系统已经成为企业与用户进行实时沟通的重要工具。PHP作为一种流行的服务器端脚本语言&#xff0c;具有高效、稳定和易用性等优点&#xff0c;因此被广泛应用于在线客服系统的开发。今天罗峰来给大家介绍一款PHP在线客服系统平台系统源码&#xff0c;源码完全开源&#…

js实现groupby

初始结果是一个数组&#xff0c;最终得到一个对象。 let arr [{sex: male,name: xiaomi }, {sex: male,name: lisi }, {sex: female,name: zhangsan }]最终得到&#xff1a; 代码&#xff1a; const groupBy (list, key) > {const obj {};list.map(item > {if (!ob…

如何在Instagram和kol展开合作

网红营销已经演变成一个由品牌、MCN机构、红人和消费者组成的复杂生态系统&#xff0c;并在某种程度上重新定义了当今社交媒体时代营销和广告的本质。在这个情况下&#xff0c;品牌找红人进行营销推广已经成为大势&#xff0c;而最能体现网红营销发展的莫过于Instagram这个平台…

简析有源滤波器应用在光伏发电系统中

叶根胜 安科瑞电气股份有限公司 上海嘉定201801 摘要:阐述了有源滤波器在光伏行业的应用&#xff0c;介绍了有源滤波器的原理和HTQF有源滤波器的技术优势&#xff0c;并展示了HTQF有源滤波器的应用效果。 关键词:太阳能;有源滤波器;单晶炉线锯 0前言 面对日益迫切的能源危…

GC8549直流电机驱动芯片解决方案,可替代LV8548/LV8549/ONSEMI

GC8549 是一款双通道 12V 直流电机驱动芯片&#xff0c; 为摄像机、消费类产品、玩具和其他低压或者电池 供电的运动控制类应用提供了集成的电机驱动解 决方案。芯片一般用来驱动两个直流电机或者驱动 一个步进电机。它可以工作在 3.8~12V 的电源电压上&#xff0c;每 通道能提…

Go语言Gin框架Logrus日志管理和token身份验证

文章目录 Logrus日志管理Logrus基本用法实现日志切割和过期删除 token身份验证Hash消息认证签名实现tokenRSA签名实现token椭圆曲线数字签名算法&#xff08;ECDSA&#xff09;方式生成token Logrus日志管理 Logrus是一个结构化的Go日志框架&#xff0c;功能强大&#xff0c;具…

机器学习2:决策树--基于信息增益的ID3算法

1.决策树的简介 建立决策树的过程可以分为以下几个步骤: 计算每个特征的信息增益或信息增益比,选择最优的特征作为当前节点的划分标准。根据选择的特征将数据集划分为不同的子集。对每个子集递归执行步骤 1 和步骤 2,直到满足终止条件。构建决策树,并输出。基于信息增益的…

Sqlserver两个服务器数据库拷贝

一.当前条件&#xff1a; serverA 为源服务器 serverB 为目标服务器 想把serverA中的数据库test拷贝到serverB上。 方法一&#xff1a; 1.在serverB上建立空数据库test 2.右键点击serverA上的test &#xff0c;任务——导出数据&#xff0c;之后填写目标服务器就行

[论文阅读]Voxel R-CNN——迈向高性能基于体素的3D目标检测

Voxel R-CNN Voxel R-CNN: Towards High Performance Voxel-based 3D Object Detection 迈向高性能基于体素的3D目标检测 论文网址&#xff1a;Voxel R-CNN 论文代码&#xff1a;Voxel R-CNN 简读论文 该论文提出了 Voxel R-CNN&#xff0c;这是一种基于体素的高性能 3D 对象…

一文读懂什么是新一代BPM

什么是BPM 业务流程管理 (Business Process Management&#xff0c;简称BPM)&#xff0c;是一门学科&#xff0c;它通过分析、建模、执行、监控、优化等流程来改进业务流程&#xff0c;使企业核心业务流程最优化。BPM系统即根据业务环境的变化&#xff0c;推进人与人之间、人与…