上一页 1 2 3 4 5 6 7 8 ··· 70 下一页
摘要: New Year Presents 用set模拟一下。。 写的bug有点多。 阅读全文
posted @ 2019-10-01 20:39 NotNight 阅读(243) 评论(0) 推荐(0)
摘要: Card Bag 状态只会从a小转移到a大,随便dp就好了。 阅读全文
posted @ 2019-10-01 13:20 NotNight 阅读(280) 评论(0) 推荐(0)
摘要: Neko and Flashback 把a[ i ] - b[ i ] 看成边, 就是求一遍欧拉路径就好了。 注意图不连通的情况。。 阅读全文
posted @ 2019-10-01 12:46 NotNight 阅读(156) 评论(0) 推荐(0)
摘要: Leaders 我们随便找一颗生成树出来, 如果询问的两点的距离为奇数则肯定可以, 否则看两点树上路径中有没有边在一个奇环中, 对于一个点双联通分量来说, 要么没有奇环, 要么两两之间都有奇环, 这个画画图就能知道, 然后求个bcc的过程中处理一下就好了。 阅读全文
posted @ 2019-09-30 00:32 NotNight 阅读(281) 评论(0) 推荐(0)
摘要: struct HashTable { typedef ull T; typedef int S; static const int N = (int)1e6 + 7; static const int M = (int)1e5 + 7; int head[N], tot; struct Node { T fval; S sval; int nex; } a[M]; void clear() { m 阅读全文
posted @ 2019-09-29 19:50 NotNight 阅读(94) 评论(0) 推荐(0)
摘要: Zoning Restrictions 发现从左往右dp没有办法dp, 可以想到最大值的性质, 我们考虑构建笛卡尔树的过程。 如果 i 的l, r 的最大值, 那么经过 i 点的线段可以全部在枚举 i 的时候处理掉。 dp[ i ][ j ][ k ] 表示只关注i - j之间的点和线段所能得到的最 阅读全文
posted @ 2019-09-26 16:27 NotNight 阅读(218) 评论(0) 推荐(0)
摘要: Koala and Notebook 首先肯定要把边拆点, 就变成了最短路问题, 最短路相同的字典序要求最小。 所以我们先bfs找出最短路图建边, 然后dfs把字典序从小到达枚举去更新点, 这样就是字典序最小的。 其实可以一遍bfs就完成的。 阅读全文
posted @ 2019-09-25 18:33 NotNight 阅读(252) 评论(0) 推荐(0)
摘要: namespace TwoSat { const int N = 2007; int dfn[N << 1], low[N << 1], belong[N << 1], idx; int in[N << 1], ou[N << 1], stk[N << 1], top; int ans[N], scc_cnt, sign, n; vector<int> G[N << 1]; void init(i 阅读全文
posted @ 2019-09-21 20:31 NotNight 阅读(193) 评论(0) 推荐(0)
摘要: HDU - 5735 感觉还是对容斥不够熟悉啊。。 先用轮廓线dp求出f[ i ][ j ]表示 i 行 j 列 没有限制的方案数。 然后2^m枚举列的划分情况进行容斥。 对于每一种情况 t[ i ] 表示这种情况下, i 行没有限制的方案数。 g[ i ]表示这种情况下, i 行并且没有可以划分的 阅读全文
posted @ 2019-09-18 18:29 NotNight 阅读(189) 评论(0) 推荐(0)
摘要: HDU - 6104 非常恶心的一道题, 维护的东西和幻想乡战略游戏差不多, 不过不同的是它的边权会变, 并且一个操作的贡献不会因为边权的改变而改变, 我们先考虑改变边权的时候不改变d1, d2数组, 那么在query进行u 和 fa[u]合并的时候, 那个边权会多加东西, 我们考虑改变边权的时候把 阅读全文
posted @ 2019-09-18 15:32 NotNight 阅读(218) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 ··· 70 下一页