标签:++ 重复 子集 col i++ 一个 style span max
发现了一个很好玩的
可以枚举所有点对
1 for(int i=0;i<n;i++) 2 for(int S=0;S<(1<<n);S++){ 3 d[i][S]=INF; 4 for(int j=0;j<i;j++) 5 if(S&(1<<j) 6 dp[i][S]=max(dp[i][S],dist(i,j)+dp[i-1][S^(1<<i)^(1<<j)]; 7 }
S表示状态,i和j表示不同的点,并且i和j的枚举不会重复,因为保证了j<i
对于每一个i
都有1<<n个S可以枚举
例如n=6
则
状态可以是:
000000
000001
000011
000111
010101
.......
1111111
S^(1<<i)^(1<<j)表示i,j不在该集合内
S&(1<<i)==true 表示第i位元素存在
标签:++ 重复 子集 col i++ 一个 style span max
原文地址:https://www.cnblogs.com/guaguastandup/p/10536597.html