随笔分类 - 二进制,位运算
摘要:题目看完之后就知道不会做。 然后题目的提示十分重要: 对于 n 个 [0,1] 之间的随机变量 x1,x2,...,xn,第k小的那个的期望值是 k/(n+1)。 假设我们知道 m 条边的权值,我们做一遍 克鲁斯卡尔 最小生成树。答案就是最小生成树中的边权最大值。也就是加入后 恰好 使图联通的边
阅读全文
摘要:因为当$A include include include include using namespace std; const int mod=1e9+7; int n,m,mx,dp[2100][2100][2],ans; int read(){ int sum=0,f=1;char ch=ge
阅读全文
摘要:一般的思路是dp[i][j]代表前i个商店购买集合为j的最小费用,枚举每一个商店然后枚举子集。复杂度O(n3m)过不了。 先把dp[i][j]设为dp[i1][j]表示钦定在这个商店购物,然后在dp[i]中做背包。 具体就是枚举每一个商品买不买。 然后惊奇的发现这样复杂度为$
阅读全文
摘要:我们先用树形DP,求出选取集合S中的点,满足连通性的但是标号可重的方案数,贡献给F(i)(1≤i≤∣S∣),也就是我们要处理出F(i)代表取至多i个点的方案数。 然后容斥一下就求出恰好选i个点的方案数。 卡一下常就能过了。
阅读全文