Solution -「AGC 016F」Games on DAG】的更多相关文章

\(\mathcal{Description}\)   Link.   给定一个含 \(n\) 个点 \(m\) 条边的 DAG,有两枚初始在 1 号点和 2 号点的棋子.两人博弈,轮流移动其中一枚棋子到邻接结点位置,无法移动者负.求 \(2^m\) 个边集中,加入图中能使先手必胜的方案数.答案对 \(10^9+7\) 取模.   \(n\le15\). \(\mathcal{Solution}\)   先从博弈角度思考:两枚棋子显然独立,那么先手必胜等价于 \(\operatorname{sg…
\(\mathcal{Descriprtion}\)   Link.   在一个含 \(n\) 个结点的有向图中,存在边 \(\lang i,i+1,0\rang\),它们不能被删除:还有边 \(\lang i,j,-1\rang~(i<j)\) 和 \(\lang i,j,1\rang~(i>j)\),删除一条边的代价为 \(a_{i,j}\).求使得图无负环的最小删边代价和.   \(n\le500\). \(\mathcal{Solution}\)   直接将原图看做一个差分约束模型,或…
\(\mathcal{Description}\)   Link.   有 \(n\) 列下底对齐的方格纸排成一行,第 \(i\) 列有 \(h_i\) 个方格.将每个方格染成黑色或白色,求使得任意完整 \(2\times2\) 矩形内恰有两个白色(和两个黑色)的方案数.答案模 \(10^9+7\).   \(n\le100\),\(h_i\le10^9\) \(\mathcal{Solution}\)   小清新 DP 题叭.   首先考虑在完整的网格图里染色,若某一行完成染色,那么下一行的方…
\(\mathcal{Description}\)   Link.   有一个 \(n\times m\) 的网格.每个格子要么是空的,要么有一个机器人,要么是一个出口(仅有一个).每次可以命令所有机器人向上下左右中的某个方向同时移动一格,如果某个机器人超出了棋盘的边界就会死亡.如果它到了出口的位置就会获救.求获救机器人的最大值.   \(n,m\le100\). \(\mathcal{Solution}\)   换系,以任一机器人为参考系,使出口成为唯一的动点.设 \(f(u,d,l,r)\)…
\(\mathcal{Description}\)   Link.   给定序列 \(\{a_{2n-1}\}\),将 \(\{a_{2n-1}\}\) 按任意顺序排列后,令序列 \(b_i\) 为前 \(2i-1\) 个数的中位数.求 \(\{b_n\}\) 的个数,对 \(10^9+7\) 取模.   \(n\le50\). \(\mathcal{Solution}\)   \(\{b_n\}\) 有一个很 naive 的性质:\(b_n\) 是常数,是 \(\{a_{2n-1}\}\) 的…
\(\mathcal{Description}\)   Link.   给定一棵 \(n\) 个点的无根树,点有点权,每次选择两个不同的叶子,使它们间的简单路径的所有点权 \(-1\),问能否将所有点权变成 \(0\).   \(n\le10^5\). \(\mathcal{Solution}\)   这不就是我那道题的削弱版么 www.   考虑叶子 \(u\),显然有 \(val_u\) 条路径经过 \(u\).DFS 回溯时考虑合并儿子们的路径.假设儿子们向上的路径共 \(s\) 条,单个…
\(\mathcal{Description}\)   Link.   给定 \(01\) 序列 \(\{A_n\}\) 和 \(\{B_n\}\),其中 \(1\) 的个数均为 \(k\).记 \(A\) 中 \(1\) 的位置为 \(\{a_k\}\),\(B\) 中的为 \(\{b_k\}\).现任意排列 \(\{a_k\}\) 和 \(\{b_k\}\),然后依次交换 \(A_{a_i}\) 和 \(A_{b_i}\),\(i=1,2,\dots,k\).求使操作完成后 \(A=B\)…
\(\mathcal{Description}\)   Link.   有 \(n+m\) 个问题,其中 \(n\) 个答案为 yes,\(m\) 个答案为 no.每次你需要回答一个问题,然后得知这个问题的正确答案.求最优策略下期望答对的题数.   \(n,m\le5\times10^5\). \(\mathcal{Solution}\)   显然贪心策略:当 \(n\not=m\),猜较多的答案.   设 \(n>m\),无脑猜 yes,就一定能答对 \(n\) 道题.那么所有 \(n\not…
\(\mathcal{Description}\)   Link.   给定一个长度为 \(n\) 的木板,木板上有 \(m\) 个标记点,第 \(i\) 个标记点距离木板左端点的距离为 \(x_i\),现在你需要在木板上放置一些不相交正方形,正方形需要满足: 正方形的边长为整数. 正方形底面需要紧贴木板. 正方形不能超出木板,正方形要将所有的木板覆盖. 标记点的位置不能是两个正方形的交界处.   求所有合法放置方案的正方形面积的乘积之和.对 \(10^9+7\) 取模.   \(n\le10^…
\(\mathcal{Description}\)   Link.   给定 \(n\) 个数 \(a_i\),要求从中选出最多的数,满足任意两个数之积都不是完全立方数.   \(n\le10^5\),\(a_i\le10^{10}\). \(\mathcal{Solution}\)   特判完全立方数--至多选一个.然后按一贯的套路约去立方因子.不过由于值域比较大,我们可以只筛出 \(\max\{a_i\}^{\frac{1}3}\) 的素数,计算这些素数在 \(a_i\) 的标准分解中的指数…