摘要: 题目大概是给一张有向图,有n张票,每张票只能使用一次,使用一张票就能用pi匹马拉着走过图上的一条边,走过去花的时间是边权/pi,问从a点走到b点的最少时间是多少。 用dp[u][S]表示当前在u点且用过的票集合是S的最少时间,丢进SPFA更新。 1 #include<cstdio> 2 #inclu 阅读全文
posted @ 2016-03-01 23:04 WABoss 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 题目大概就是给一个序列,问每个数右边有几个连续且小于该数的数。 用单调递减栈搞搞就是了。 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 #define INF (1<<30) 5 #define MAXN 88888 阅读全文
posted @ 2016-03-01 21:14 WABoss 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 题目给一个01矩阵,求最大的1子矩阵。 先用dp预处理出每一行的每一列的1能向上按连续的1延伸多少,然后枚举每一行作为子矩阵的底,那样对于每一行的答案就是POJ2559这个经典问题了。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorit 阅读全文
posted @ 2016-03-01 19:16 WABoss 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 题目给一棵边带权的树,统计路径长度<=k的点对数。 楼教主男人八题之一,分治算法在树上的应用。 一开始看论文看不懂,以为重心和距离那些是一遍预处理得来的。。感觉上不敢想每棵子树都求一遍重心和距离——那样时间复杂度怎么会只有O(nlogn)? 后来想通了,真的是对于每颗子树都把其所有结点单独提取出来, 阅读全文
posted @ 2016-03-01 09:58 WABoss 阅读(421) 评论(0) 推荐(0) 编辑