网站界面设计说明,垡头网站建设,网站服务内容,网站建设事项考虑容斥#xff0c;枚举哪些不存在的边选中了#xff0c;剩下的不管#xff0c;则可以用组合数计算方案数。 时间复杂度$O(m2^mnm)$。 #includecstdio
const int N550,B10000,MAXL350;
int n,m,S,i,j,e[N][2],g[N],f[N];
inline int max(int a,int b){return a…考虑容斥枚举哪些不存在的边选中了剩下的不管则可以用组合数计算方案数。 时间复杂度$O(m2^mnm)$。 #includecstdio
const int N550,B10000,MAXL350;
int n,m,S,i,j,e[N][2],g[N],f[N];
inline int max(int a,int b){return ab?a:b;}
struct Num{int a[MAXL],len,fu;Num(){len1,fua[1]0;}Num operator(const Numb){Num c;c.lenmax(len,b.len)2;int i;for(i1;ic.len;i)c.a[i]0;if(fub.fu){for(i1;ilen;i)c.a[i]a[i];for(i1;ib.len;i)c.a[i]b.a[i];for(i1;ic.len;i)if(c.a[i]B)c.a[i1],c.a[i]-B;while(c.len1!c.a[c.len])c.len--;c.fufu;}else{bool flag0;if(lenb.len){for(ilen;i;i--)if(a[i]!b.a[i]){if(a[i]b.a[i])flag1;break;}}else{if(lenb.len)flag1;}if(flag){for(i1;ilen;i)c.a[i]a[i];for(i1;ib.len;i)c.a[i]-b.a[i];for(i1;ic.len;i)if(c.a[i]0)c.a[i1]--,c.a[i]B;while(c.len1!c.a[c.len])c.len--;c.fufu;}else{for(i1;ib.len;i)c.a[i]b.a[i];for(i1;ilen;i)c.a[i]-a[i];for(i1;ic.len;i)if(c.a[i]0)c.a[i1]--,c.a[i]B;while(c.len1!c.a[c.len])c.len--;c.fub.fu;}}return c;}Num operator*(const Numb){Num c;c.lenlenb.len2;c.fufu^b.fu;int i,j;for(i1;ic.len;i)c.a[i]0;for(i1;ilen;i)for(j1;jb.len;j){c.a[ij-1]a[i]*b.a[j];if(c.a[ij-1]B){c.a[ij]c.a[ij-1]/B;c.a[ij-1]%B;if(c.a[ij]B)c.a[ij1]c.a[ij]/B,c.a[ij]%B;}}while(c.len1!c.a[c.len])c.len--;return c;}void operator/(int b){int i;for(ilen;i;i--)a[i-1]a[i]%b*B,a[i]/b;while(len1!a[len])len--;}bool iszero(){return len1!a[1];}void write(){if(len1!a[1])fu0;if(fu)putchar(-);printf(%d,a[len]);for(int ilen-1;i;i--)printf(%04d,a[i]);puts();}void set(int x){fu0;if(x0)x*-1,fu^1;if(xB){len2;a[1]x%B;a[2]x/B;}else{len1;a[1]x;}}
}ans[N],tmp,now;
int main(){scanf(%d%d,n,m);for(i0;im;i)scanf(%d%d,e[i][0],e[i][1]);for(i0;im;i)for(j0;jm;j)if(i!j(e[i][0]e[j][0]||e[i][1]e[j][1]))g[i]|1j;for(S0;S1m;S){for(i0;im;i)if(Si1)if(Sg[i])break;if(im)f[__builtin_popcount(S)]__builtin_popcount(S)1?-1:1;}for(i0;in;i)if(f[i]){tmp.set(f[i]);for(j0;jn-i;j){if(j){now.set((n-i-j1)*(n-i-j1));tmptmp*now;}if(j1)tmp/j;ans[ij]ans[ij]tmp;}}for(i0;in;i)ans[i].write();return 0;
}转载于:https://www.cnblogs.com/clrs97/p/8460483.html