雯舞

Love three things int he world -- Manchery

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

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

2016-09-27 18:04:28

阅读数:650

评论数:0

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

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

2016-09-25 16:45:23

阅读数:391

评论数: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...

2016-09-25 16:43:50

阅读数:520

评论数:0

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

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

2016-09-25 16:39:31

阅读数:705

评论数: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...

2016-09-23 17:11:46

阅读数:569

评论数:0

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

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

2016-09-22 18:44:34

阅读数:257

评论数:0

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

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

2016-09-22 18:41:27

阅读数:487

评论数:0

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

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

2016-09-20 18:27:06

阅读数:898

评论数:0

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

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

2016-09-20 18:24:42

阅读数:260

评论数: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...

2016-09-20 18:23:15

阅读数:201

评论数:0

[数位DP] HDU 2089 不要62

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

2016-09-20 18:22:11

阅读数:154

评论数:0

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

详见官方题解 #include #include #include #include #include #include #define dprintf(...) fprintf(stderr,__VA_ARGS__) using namespace std; typede...

2016-09-16 13:36:53

阅读数:260

评论数:0

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

其实那个不考虑对角是可以手推的 考虑对角只能dp了 详见官方题解以及百度文库:

2016-09-16 13:35:53

阅读数:249

评论数: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...

2016-09-15 21:55:55

阅读数:189

评论数: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...

2016-09-15 09:54:54

阅读数:494

评论数:0

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

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

2016-09-14 19:45:12

阅读数:714

评论数:0

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

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

2016-09-14 19:40:47

阅读数:651

评论数: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...

2016-09-14 19:35:19

阅读数:321

评论数: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...

2016-09-14 19:33:16

阅读数:323

评论数: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...

2016-09-14 19:32:09

阅读数:531

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭