最多可达成的换楼请求数目【二进制枚举】


1601. 最多可达成的换楼请求数目

解题思路:由于数据不超过20,所以二进制枚举是可行的

class Solution {
public:
    int maximumRequests(int n, vectorint>>& requests) {
        int ans=0;
        int flag;
        int len=requests.size();
        for(int i=0;i<(1<){   
            if(__builtin_popcount(i)<=ans){
                continue;
            }
            vector<int>vt(n,0);
            for(int j=0;j){
                if(i&(1<<j)){
                    vt[requests[j][0]]--;
                    vt[requests[j][1]]++;
                }
            }
            flag=1;
            for(int j=0;j){
                if(vt[j]!=0){
                    flag=0;
                    break;
                }
            }
            if(flag){
                ans=__builtin_popcount(i);
            }
        }
        return ans;
    }
};