河南网站建设价格大全,手机网站如何开发,网站流量的重要性,网站建设无法访问网站暴力枚举的话是n#xff01;
考虑状压DP#xff0c;其实就是用二进制表示状态 再进行暴力 同时加一个记忆化就好了
这里有常用技巧#xff1a;
全集#xff08;1n#xff09;-1
增加某个元素 x | (1i)
删除某个元素 x ~(1i) const i… 暴力枚举的话是n
考虑状压DP其实就是用二进制表示状态 再进行暴力 同时加一个记忆化就好了
这里有常用技巧
全集1n-1
增加某个元素 x | (1i)
删除某个元素 x ~(1i) const int N 15;
int dp[1N][N];
vectorintnums1;
int mod 1e97;
int n;int dfs(int u,int id){if(!u)return 1;if(~dp[u][id])return dp[u][id];int res 0;for(int i0;in;i){if((ui1)(nums1[id]%nums1[i]0||nums1[i]%nums1[id]0))res (res dfs(u~(1i),i))%mod;}res%mod;return dp[u][id] res;}class Solution {
public:int specialPerm(vectorint nums) {memset(dp,-1,sizeof dp);n nums.size();nums1 nums;nums1.push_back(1);return dfs((1n)-1,n);}
};