折半搜索
L_0_Forever_LF
一个热爱OI的OIer
展开
-
51nod 1446
一个good点如果只和bad相连就不计算他的价值,否则算入总价值记作great点,要求总价值<=maxval这些good点之间除了权值没啥区别,生成树计数容易想到用矩阵树定理去统计,但是用矩阵树定理,只能通过让他们之和bad间有边限制i个点一定不是great点,对于其他点有可能还有不是great点的情况统计 于是用g[i]表示至少i个good点非great,f[i]表示恰好i个good点非grea原创 2017-11-20 21:46:23 · 352 阅读 · 0 评论 -
BZOJ1130: [POI2008]POD Subdivision of Kingdom
直接搜感觉会T折半搜一下,meet in middle,位运算可以省掉一个ncode:#include<set> #include<map> #include<deque> #include<queue> #include<stack> #include<cmath> #include<ctime> #include<bitset> #include<string> #include<vector>原创 2017-12-08 10:11:47 · 344 阅读 · 0 评论 -
CodeChef LEBOXES
有n个箱子,每个箱子打开有Pi的概率获得Vi的金币,1-Pi的概率获得1个钻石 这个人开完箱子后,会拿这些金币和钻石去买东西,m个东西,第i个东西需要Ci金币,Di钻石购买,问购买的东西数量的最大值的期望 Vi很大,但是注意到钻石数量很小,我们先做一个dp,f[i][j]表示我要买i个东西,用了不超过j个钻石,所需要的最少金币数 然后对n折半,搜出开出i个钻石的所有情况,然后枚举分别开了x,...原创 2018-04-20 21:26:09 · 213 阅读 · 0 评论