最多可达成的换楼请求数目【二进制枚举】
1601. 最多可达成的换楼请求数目
解题思路:由于数据不超过20,所以二进制枚举是可行的
class Solution { public: int maximumRequests(int n, vector<vector<int>>& requests) { int ans=0; int flag; int len=requests.size(); for(int i=0;i<(1<<len);i++){ if(__builtin_popcount(i)<=ans){ continue; } vector<int>vt(n,0); for(int j=0;j<len;j++){ if(i&(1<<j)){ vt[requests[j][0]]--; vt[requests[j][1]]++; } } flag=1; for(int j=0;j<n;j++){ if(vt[j]!=0){ flag=0; break; } } if(flag){ ans=__builtin_popcount(i); } } return ans; } };