摘要: 传送门 枚举右端点 可以发现左右端点中有一个合法的咖啡店就可以了 而且为了让合法的左端点尽量多 咖啡店要尽量靠右 所以可以记录目前最右边的合法咖啡店左边每种颜色的客栈的个数 cnt[ color ] 然后如果更右边有合法的咖啡店,就更新一波 cnt 累计所有右端点的情况 复杂度 O(nk) #inc 阅读全文
posted @ 2018-09-27 14:14 LLTYYC 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 传送门 显然是RMQ问题 用ST表就行了 用倍增的思想,像DP一样转移 设 mx[ i ] [ j ] 表示从点 i 开始,后面一共 2^j 个点的最大值 显然 mx[ i ] [ 0 ] = a [ i ](a是原数列) 那么 mx [ i ] [ j ] = max( mx[ i ] [ j-1 阅读全文
posted @ 2018-09-27 13:48 LLTYYC 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 传送门 好好读题 读懂了题后就不难了 可以发现和强联通分量的定义有点像 强连通的要求:对于任意两点u,v都存在一条路径使得 u->v 并且 v->u 而半联通的要求:对于任意两点u,v都存在一条路径使得 u->v 或者 v->u 那么显然一个强联通分量肯定属于半联通子图 那先考虑缩点,看看缩点后的情 阅读全文
posted @ 2018-09-27 13:23 LLTYYC 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 传送门 显然可以把所有间谍的关系建一个图 如果A间谍手中掌握着关于B间谍的犯罪证据,那就从A连一条边到B 如果贿赂了一个间谍,那么整个联通块的间谍肯定都被控制 那就先把图缩成DAG 如果控制了一个块,那么这个块后面所有的块都能被控制 为了控制所有块,一定要贿赂没有入度的块,因为它不能被其它块控制到 阅读全文
posted @ 2018-09-27 11:37 LLTYYC 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 传送门 算法:Tarjan & DP 显然缩点后的图是一个DAG DAG上搞DP是基本操作啊 按拓扑序搞一波DP就好了 设 f[ i ] 表示从起点抢劫到 DAG 上的点 i 时能得到的最多的钱 那么 f[ i ] = max( f [ i ] , f[ j ] + sval[ i ]) ( j 有 阅读全文
posted @ 2018-09-27 11:16 LLTYYC 阅读(269) 评论(0) 推荐(0) 编辑