最大团模版
复 杂 度 O ( 3 m 3 ) 复杂度O(3^{\frac{m}{3}}) 复 杂 度 O ( 3 3 m ) int n,m; //m为节点个数 int mpp[50][50]; int st[50][50]; int mans=0; int dp[50]; //dp[i] 表示为i到m的节点中最大团的节点数 map<string,int> mp; void dfs(int stp,int num){ if(!num){ if(stp>mans){ mans=stp; } return; } for(int i=0;i<num;++i){ if(stp+n-st[stp][i]-1<=mans) break; if(stp+dp[st[stp][i]]<=mans) break; int tmp=0; for(int j=i+1;j<num;++j){ if(mpp[st[stp][i]][st[stp][j]]){ st[stp+1][tmp++]=st[stp][j]; } } dfs(stp+1,tmp); } } void solve(){ int cnt=0; for(int i=m-1;i>=0;--i){ cnt=0; for(int j=i+1;j<m;++j){ if(mpp[i][j]){ st[1][cnt++]=j; } } dfs(1,cnt);