首页 > TAG信息列表 > CQOI2017
P3755 [CQOI2017]老C的任务 题解
CDQ分治 对于这道题,可以参考 P4390 [BOI2007]Mokia 摩基亚 的做法,可以通过 CDQ 分治离线操作高效处理出答案(我常数大,不能体现出 CDQ 分治的优秀)。 可以发现,操作 11 和操作 22 分好了界限,于是我们只需要统计答案,不用再使用树状数组维护。 对于 CDQ 分治,我们可以先看一P3756 [CQOI2017]老C的方块
题面自己看吧。。。 std 典型的网络流。 看到网格和炸点,可以想到是最小割。 按照套路,考虑染色,寻找规律。 发现,可用如下方法染色。 之后四种情况都是如下: 发现如图每种情况必然包含四种不一样的颜色,且顺序都是 黄 \(\to\) 绿 \(\to\) 黑 \(\to\) 灰。 思考一下,发现破坏一个讨厌的『题解』Luogu-P3700 [CQOI2017]小Q的表格
P3700 [CQOI2017]小Q的表格 Description 有一个无穷多行,无穷多列的表格,行列从 \(1\) 开始标号,第 \(a\) 行 \(b\) 列有一个整数 \(f(a, b)\); \(f(a, b)\) 应满足: \(\forall a, b \in \mathbb{N}^*, f(a, b) = f(b, a)\); \(\forall a, b\in \mathbb{N}^*, b\cdot f(a, a + b) = (a『题解』Luogu-P3700 [CQOI2017]小Q的表格
P3700 [CQOI2017]小Q的表格 Description 有一个无穷多行,无穷多列的表格,行列从 1 1 1 开始标号,第 aTo_Heart—题解——[CQOI2017]老C的方块
这里提供一种更好想,但是点会多一些的做法 首先我们很容易就能想到染色 染色 我们按照以上方法染色,然后发现从 1 出发,沿着 1->2->3->4 的路线,可以把我们所有需要删除情况都涵盖完。 所以我们现在就只需要建图了 建图 因为我们可以沿着 1->2->3->4 的路线走完所有的情况,那么就可以luogu P3757 [CQOI2017]老C的键盘
题面传送门 先把这个二叉树给建出来。 然后考虑dp,设\(dp_{i,j}\)为\(i\)在这个子树中排第\(j\)的方案数。 然后对于每个儿子的转移,分别枚父亲的排名,儿子的排名,父亲加入之后的排名,然后组合数乘一下就好了。 时间复杂度不会算,反正最多\(O(n^3logn)\) code: #include<bits/stdc++.h>P3700 [CQOI2017]小Q的表格(反演、分块)
P3700 [CQOI2017]小Q的表格 给定一个大小为 n × n n \times n n×n的表格,初始时 i【题解】P3698 [CQOI2017]小Q的棋盘
【题解】P3698 [CQOI2017]小Q的棋盘 【题解】P3698 [CQOI2017]小Q的棋盘 题目大意 给定一棵无根树,求从根节点出发移动N步最多可经过多少节点,节点可重复经过,但不重复计数 Solution 既然是最优化问题,考虑树形DP 容易想到,设\(f[x][i][0/1]\)表示在x这棵子树上走\(i\)步,是否(\(0\)表示[CQOI2017] 小Q的棋盘
[CQOI2017] 小Q的棋盘 题目链接:洛谷P3698 题意简述 给定一棵树,点数为n,从根节点出发,每一步可以走向与当前点有直接边相连的点,问走m步最多能经过多少个点。边和点均可以重复经过,但不重复计数。 算法概述 \(f[p][j]\) 表示从 \(p\) 出发走向以 \(p\) 为根的子树,一共走 \(k\) 步并且[CQOI2017]老C的方块
[CQOI2017]老C的方块 [题目链接] 链接 [思路要点] 首先神仙染色 这样四种颜色染色,可以发现,所有的奇怪图形都是可以表示成 黄 -> 红 -> 蓝 -> 绿 这样顺序的一个四个格子的连通块 这样可以建一个分层图,让每个黄点向 \(S\) 连边,绿点向 \(T\) 连边,然后红黄,蓝绿之间的边权设为 \(\text[BZOJ4822] [CQOI2017] 老C的任务
题目链接 BZOJ:https://lydsy.com/JudgeOnline/problem.php?id=4822. 洛谷:https://www.luogu.org/problemnew/show/P3755. Solution 直接上\(kd\_tree\)就好了。 为啥我觉得bzoj机子比洛谷快些 #include<bits/stdc++.h> using namespace std; void read(int &x) { x=0;int f=1;