[CLYZ2017]day3


最大割

solution

100分

待我学完线性基.

开锁

solution

100分

每个点只有一条出边和入边,显然图由很多个环组成.
每个环中必须选出一个点,才能打开所有的箱子.
预处理出每个环的大小,设共\(m\)个,大小为\(g_i\).
\(f[i][j]\)表示前\(i\)个环选了\(j\)个点合法的方案数.
\(f[i][j]=\sum_{l=1}^{g_i}f[i-1][j-l]\times{C_{g_i}^l}\)

\(ans=\frac{f[m][k]}{C_n^k}\).

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define N 305
#define max(a,b) a>b?a:b
#define min(a,b) a=1;--l)
					f[i][j]+=f[i-1][j-l]*c[g[i]][l];
		}
		printf("%.6lf\n",f[cnt][k]/c[n][k]);
	}
}
int main(){
	freopen("unlock.in","r",stdin);
	freopen("unlock.out","w",stdout);
	Aireen();
	fclose(stdin);
	fclose(stdout);
	return 0;
}