02 2014 档案
摘要:PS:本篇博文均采用宏#define FOR(i, a, n) for(i = a; i using namespace std;#define FOR(i, a, n) for(i = a; i 0) path[ans--] = pos; //先加入进去,因为没有记录最后的接入路径 while(...
阅读全文
摘要:题目链接:https://vijos.org/p/1218算法:环形DP+划分型DP环形DP的思路很简单,将1~n中每一个节点当成起点进行划分型DP即可,关于划分型DP前面论文有介绍~查找tag把~sxbk!sxbk。。。此题那么水卡了我3个小时。。。变态。。。到头来发现是初始化。!!!!!!!但我...
阅读全文
摘要:题目链接:https://vijos.org/p/1792算法:DP看到这题真的一点不会。。。只能爆搜一下。。但太太慢了。。看了题解后,听说是分组背包??不知道。。好吧,,还是百度了下题解,渐渐明了。。我们用f(i, j)来表示前i种花摆j盆的最大方案数,可以推得f(i, j) = sum{ f(i...
阅读全文
摘要:题目链接:https://vijos.org/p/1431算法:贪心描述恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会沉下去。到那时,岛上的所有人都会遇难。...
阅读全文
摘要:题目链接:http://www.wikioi.com/problem/1029/算法:数学本题有个2小技巧。一棵二叉树的前序遍历a1a2a3...ai和后序遍历b1b2b3...bi有一种关系:当只有一棵子树的根 在a序列下标为i, 在b序列下标为b有 a[i-1] == b[j+1]这是因为当根只...
阅读全文
摘要:关于背包DP的文章很多,谷歌百度搜《背包九讲》即可。本文章只放模版。文章统一v代表体积,w代表价值,f代表dp数组,V代表总体积,W代表总价值,均采用滚动数组。答案一般都为f[V]。01背包:void zop(int v, int w) { for(int i = V; i >= v; --i) ...
阅读全文
摘要:题目链接:http://www.wikioi.com/problem/1296/算法:Splay这是非常经典的一道题目,用Splay树来维护营业额,每天的最小波动值就等于 min{树根-树根的前驱, 树根的后继-树根)所以用Splay来维护PS: 本题数据有问题,所以当空行时,值为0========...
阅读全文
摘要:题目链接:http://www.wikioi.com/problem/1285/算法:Splay刚开始看到这题,就注意到特征abs了,并且数据n_using namespace std;#define F(rt) rt-> pa#define K(rt) rt-> key#define CH(rt,...
阅读全文
摘要:废话不说,有篇论文可供参考:杨思雨:《伸展树的基本操作与应用》Splay的好处可以快速分裂和合并。===============================14.07.26更新=============================实在看不惯那充满bug的指针树了!动不动就re!动不动就re!...
阅读全文