摘要: 题目大意: 给你一个带边权图,每个点都有自己的高度h[i],结点只能通过边到达高度不高于它的结点j。 你可以通过某种手段跳转到你原来走过的结点,不计入路径。 问你从1号点出发,最多可以到达多少点?路径和最小是多少? 思路: 对于第一问,我们可以bfs一边把所有能走到的地方遍历一遍。 对于第二问,实际 阅读全文
posted @ 2017-11-01 14:25 skylee03 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给你一个有向图,你可以把其中某一条单向边改成双向边,使得图中最大的SCC最大。 问SCC最大能是多少,有哪些方案? 思路: 对原图缩点后就变成了一个DAG。 我们在DAG上DP,记录一下从点i出发能到达的点集out[i],以及能到达i的点的集合in[i]。 最后枚举每一条边(u->v), 阅读全文
posted @ 2017-11-01 11:17 skylee03 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给你一个序列,对序列中所有逆序对之间连一条边,问图中最大独立集为多大,有哪些点一定在最大独立集中。 思路: 在纸上画一下发现最大独立集一定是元序列的一个LIS,最大独立集必经点就是所有LIS的公共部分。 考虑把所有的LIS记录下来,然后构建一个DAG,DAG的割点即为LIS的公共部分。 阅读全文
posted @ 2017-11-01 11:06 skylee03 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给你一个很长的字符串a(|a|<=300000),一个比较短的字符串b(|b|<=200),请你搞一些破坏。 你可以从a的两边去掉一些字符使得b仍是a的一个字串,问有多少种方案? 思路: 首先预处理一下串a,用f[i][j]记录对于第i个位置的字符,左边最靠近i的字符j在哪里。 然后枚举 阅读全文
posted @ 2017-11-01 11:03 skylee03 阅读(130) 评论(0) 推荐(0) 编辑