当前搜索:

[组合数 DP] HDU 4532 湫秋系列故事——安排座位

一种典型的组合数DP  f[i][j]表示前i种数值排列有j个不合法间隙的方案数 然后枚举第i个分成几块k 有l块塞入j个不合法空隙中进行转移 答案即为f[n][0] 不过还要乘以排列数 #include #include #include #include #define cl...
阅读(501) 评论(0)

[DP 贪心] 51Nod 1673 树有几多愁

如果我们确定了每个叶子之间的相对大小关系,就可以用贪心来解决这个问题了。 对于每一个祖先,它的编号一定大于它的所有儿子。 我们从大到小来枚举所有编号(这里指相对大小)。 令dp[i]表示i这个状态的节点可以得到的最大乘积。 有dp[i]可以转移到dp[i+j],其中j这个状态仅有一个节点,...
阅读(331) 评论(0)

[线性筛 质因数分解] 51Nod 1643 小Q的家庭作业

#include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; typedef long long ll; const int P=1e9+7; const int N=10...
阅读(376) 评论(0)

[均摊 线段树] UOJ #228. 基础数据结构练习题

靠信仰做题 其实很好感性的理解复杂度 想象数列是一排山峰高低不平 可以用O(K*n)次开根把他们削平 区间加操作不过是把其中一段整体抬高  只要在这段两边多做常数次就能把他削平 Evan可是用偏导证明的 %%% #include #include #include #include #defi...
阅读(615) 评论(0)

[分块] BZOJ 2122 工作评估

比较好的一道分块题 重要结论F(i,j,x0)=min( G(i,j), x0+S(i,j)) 详见:http://blog.csdn.net/u011542204/article/details/51504804 #include #include #include #includ...
阅读(520) 评论(0)

[缩树 主席树] BZOJ 4539 [Hnoi2016]树

hnoi的大数据结构题 把每一个残基缩一下 变成一颗大树  每次新增 查询一下是在哪个残基上 这里要用主席树求子树第k大 然后记一下到fat的权值 然后就各种细节搞lca #include #include #include using namespace std; typed...
阅读(233) 评论(0)

[线段树 扫描线 鬼畜] BZOJ 3228 [Sdoi2008]棋盘控制 && BZOJ 1905 Soldier 士兵控制的棋盘

这种题目太恶心  把坐标轴转一下 就是裸的扫描线 但是是网格 很恶心 我用线段树算出无边界的情况 分奇数列和偶数列算两次 然后四个边界算一下去掉 四个角重复减的算一下 加回去 #include #include #include #include #define cl(x) m...
阅读(440) 评论(0)

[最大费用可行流 || 单纯形] BZOJ 3118 Orz the MST

首先很容易根据树边非树边的大小关系列出线性关系 然后对偶一下 可以用线性规划 也可以跑费用流 把对偶后的线性约束写出来 建图就不难看懂了 #include #include #include using namespace std; inline char nc(){ st...
阅读(838) 评论(0)

[较复杂的数位DP] HDU 4507 吉哥系列故事——恨7不成妻

较复杂的数位DP 我们不止记录个数,还记录和,平方和进行转移  然后就是简单的数位DP了 #include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; type...
阅读(241) 评论(0)

[数位DP] HDU 3555 Bomb

数位DP详见:http://blog.csdn.net/u014609452/article/details/52598675 #include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using na...
阅读(188) 评论(0)

[数位DP] HDU 2089 不要62

简单的数位DP 数位DP的简单思想 从低位到高位开始枚举 每次状态有两种 即 到当前位与上限n一模一样 和 到当前位已经小于n 那么就可以枚举当前位进行转移 因为 到当前位与上限n一模一样 只有一种状况 所以不特意储存 代码中dp数组都表示 到当前位已经小于n dp[2] 表示 已经出...
阅读(132) 评论(0)

[几何] UR #16 B.破坏蛋糕

详见官方题解 #include #include #include #include #include #include #define dprintf(...) fprintf(stderr,__VA_ARGS__) using namespace std; typede...
阅读(240) 评论(0)

[矩阵快速幂 数学] UR #16 A.破坏发射台

其实那个不考虑对角是可以手推的 考虑对角只能dp了 详见官方题解以及百度文库:
阅读(214) 评论(0)

[概率DP] Codeforces 453A Little Pony and Expected Maximum

比较简单的概率题 f(k)=(k/n)^m-f(k-1) #include #include #include using namespace std; int n,m; inline double Pow(double a,int b){ double r...
阅读(169) 评论(0)

[五维偏序 分块 bitset] HihoCoder #1236 2015北京网络赛 J Scores

题目链接:http://hihocoder.com/problemset/problem/1236?sid=873407 求五维偏序,强制在线 b[i][j]表示第i维前j块的状态 #include #include #include #include #include #define...
阅读(431) 评论(0)

[无源汇上下界最小费用可行流 差分费用流] BZOJ 1061 [Noi2008]志愿者招募

摘自:几种网络流问题的关系和"志愿者招募"问题的新理解 只要在上下界可行环流上加上费用, 就可以很好的解决这个问题. 具体的见图方法如下: A[i]表示第i天需要的志愿者数目, (s[i], t[i], w[i])表示每种志愿者开始, 结束的时间和费用. 这样,...
阅读(656) 评论(0)

[无源汇最大费用可行流 差分费用流] Codeforces 717G Bubble Cup 9 - Finals G. Underfail

类似志愿者招募的建图方法 用一个点表示差分 然后用流量表示出差分的和 然后在l,r+1之间连边 这是个无源汇最大费用可行流 我是这么做的 建个超级源汇 让每条正权的边流满 这些流通过超级源汇流 那么流量不平衡 所以再跑遍T-S的最小费用最大流 因为是最大流,所以源汇的流量都为零 最小费用,也...
阅读(575) 评论(0)

[构造] Codeforces 717E Bubble Cup 9 - Finals E. Paint it really, really dark gray

这是一道递归构造的题 先构造完子树,然后可以通过走father来调整自己 因为1没有father 需要特判 走一个儿子来调整 #include #include #include using namespace std; inline char nc(){ static char buf...
阅读(298) 评论(0)

[随机化 构造] Codeforces 717H Bubble Cup 9 - Finals H. Pokermon League challenge

随机化...不明觉厉 #include #include #include using namespace std; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf...
阅读(291) 评论(0)

[矩阵快速幂加速DP] Codeforces 717D Bubble Cup 9 - Finals D. Dexterina’s Lab

fx 表示 异或和为x的概率 然后DP一下 #include #include #include using namespace std; const int N=150; struct Matrix{ int n; double a[N][N]; Matrix(i...
阅读(508) 评论(1)
    个人资料
    持之以恒
    等级:
    访问量: 39万+
    积分: 1万+
    排名: 1232
    文章分类
    最新评论