
序
limboman
这个作者很懒,什么都没留下…
展开
-
hdu5760
区间Dp,经典问题最长上升公共子序列的变式; 计数需要去重,思想在于对于本质相同的序列均将其表示到最大的哪个; 然后dp时依据包含关系就可以去重啦;#include<cstdio>#include<algorithm>#include<cstring>#define rep(i,k,n) for(int i=k;i<=n;i++)#define rep2(i,k,n) for(int i原创 2016-11-17 09:08:13 · 295 阅读 · 0 评论 -
3674: 可持久化并查集加强版
主席数维护可持久化数组实现可持久化并查集思考时主要考虑并查集的变化与特性,没有考虑其易于处理的本质体现以及手中的工具………原创 2016-10-22 21:18:48 · 292 阅读 · 0 评论 -
2227: [Zjoi2011]看电影(movie)
经典思路:线转化为圈,利用对称性 假设有k+1个椅子围成一圈,每张票上写着1~k+1(而不是1~k),因为概率均等,我们统计有多少种方案导致椅子k+1上坐着人 一共有(k+1)n种可能的情况。为了方便叙述,我们假定每种情况模拟一遍,每次在没人坐的椅子上放一枚硬币(每次恰好有k+1-n把椅子没人坐),则所有情况都模拟完之后每把椅子上都有(k+1-n)(k+1)n-1枚硬币,也就是说,有(k原创 2016-10-22 21:10:22 · 417 阅读 · 0 评论 -
bzoj3174 [Tjoi2013]拯救小矮人
首先,我们要证明一定存在一个最优逃生序列ai满足: Aa*i + *Bai <= Aai+1 + Bai+1; 可采用反证法得知对于所有逃生序列ai,交换满足存在: Aa*i + *Bai > Aai+1 + Bai+1 的数对一定不会更差,从而得证; 这样就为我们提供了一个序,然后就可以dp啦#include<bits/stdc++.h>#define rep(i,k原创 2016-10-01 16:32:48 · 291 阅读 · 0 评论 -
sd省队集训二轮tree
感觉这题应该跟hdu5290很像,结果它们果然系出同源; 这个题应该处于更根源的位置; 根据算法3的思想,令dp[i][j][k]表示以i为根的子树且已经使用了j个黑点,最深未被覆盖的长度或者沿着根最多能覆盖多少长度。 但是这样状态会很多无法存下。 考虑将k表示成还拥有一个黑点k,使得点i为根的子树全被保护。 令T[i]表示[i不是黑点] 枚举k,当点u枚举到一个儿子v原创 2016-11-14 18:04:30 · 463 阅读 · 1 评论 -
3925: [Zjoi2015]地震后的幻想乡
这道题运用了很多数学知识(唉,真羡慕你们高数好的…….) 首先我们扔掉提示。。。。。 尝试枚举最小生成树的最大边x,令g(x)g(x)表示答案<=x的概率 发现答案可以表示成∫10xg′(x)dx\int_0^1xg^{'}(x)dx 根据分部积分法,原式=1−∫10g(x)dx=∫10(1−g(x))dx1-\int_0^1g(x)dx=\int_0^1(1-g(x))dx 即答案=答案原创 2016-12-23 01:04:32 · 555 阅读 · 0 评论