Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include "iostream"#include "algorithm"#include "cstdio"#include "cstring"#include "set"#include "vector"using namespace std;int dp[2][1<<10];int cnt[1<<10];int num[1010];int N,M,Q;int reans(int pos,int flag){int v = pos>>1;if(cnt[v]<Q)return max(dp[flag][v+(1<<(M-1))],dp[flag][v]);if(cnt[v]==Q)return dp[flag][v];}int recnt(int x){int cntx=0;while(x){if(x&1)cntx+=1;x>>=1;}return cntx;}int main(){