Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<cstdio>#include<cstring>#include<algorithm>#include<set>#include<map>#include<vector>#define rep(i,j,k) for(int i=(int)j;i<=(int)k;i++)#define per(i,j,k) for(int i=(int)j;i>=(int)k;i--)using namespace std;typedef long long LL;typedef double db;const int N=105;LL ji[N];int n,m;const int P=1000000007;LL gt[N];int work(int a,int b){memset(ji,-1,sizeof ji);LL V=gt[a]^gt[b];if(a==b)V=gt[a];rep(i,1,m)if(i^a)if(i^b){LL x=gt[i];int bt=-1;rep(j,0,n-1)if(x&(1ll<<j)){if(ji[j]>=0){x^=ji[j];}else{bt=j;break;}}