摘要: 直觉上觉得颜色数量不会很多。我就假定最后最多10种颜色。假定一个root。f[i][k]表示i为root的子树里i取k色,得到的最小值。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include<iostream>#include<cstdio>#define INF 1000000000using namespace std;struct node{ int y,next; }E[100001]; int 阅读全文
posted @ 2010-11-09 17:00 Whimsy 阅读(753) 评论(1) 推荐(2) 编辑
摘要: 找第k小元素~什么划分树。很巧妙。划分树神马的~algorithm:d[i][j]第i层的第j个排第几名。s[i][j]第i层的第j个之前包括第j个有多少个被分到左孩子。buildtree()像线段树那样建树。find()函数就可以找出x-y中第z名排第几名。有了s函数一切都好办了。#include<iostream>#include<cstdio>using namespace std;struct node{ int x,y; };node a[20000]; int d[20][100000],s[20][100000],n,m,x,y,z;bool cmp(co 阅读全文
posted @ 2010-11-01 09:54 Whimsy 阅读(597) 评论(0) 推荐(0) 编辑
摘要: DP优化之单调队列 专题和单调队列有很多交集。。。斜率优化理论不说多。一个式子至于变量i有关就极为belong[i];就是DP方程满足了f[i]=max{belong1[j]+belong1[i]*belong2[j]+belong2[i]}于是我们就说可以得到斜率belong1[i].以点(belong2[j],belong1[j])组成的凸壳。求max就是保留上凸,min保留下凸。---------------------------------------------------------------------http://acm.hdu.edu.cn/showproblem.php 阅读全文
posted @ 2010-10-12 17:58 Whimsy 阅读(1957) 评论(5) 推荐(1) 编辑