上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 32 下一页
摘要: 根据奇偶性,把x,y坐标加起来是奇数的位置翻转一下,就变成求最大01子矩阵了。 然后预处理出每个位置往上最长的01路径,每行用一个单调栈解决。 单调栈从栈底到栈顶维护每一个矩阵的高度和宽度,按高度递增维护。 当前高度如果小于栈顶的高度,那就将栈顶的矩阵更新答案,并且出栈,但是它的宽度是可以为当前高度 阅读全文
posted @ 2020-01-25 20:06 Mrzdtz220 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 基环森林上DP。 我刚开始想的就是找到环,然后把环上每个点及它的子树缩成一个点,就变成一个环上的DP了。然后就是强制第一个不取和强制最后一个不取。 看了别人的题解发现可以不用那么麻烦,只要找到环上任意相邻的两点,强制把这条边断开,然后还是DP两次就行了。 DP方程就比较naive了。 #includ 阅读全文
posted @ 2020-01-25 18:00 Mrzdtz220 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 平移、旋转、放缩对两个相似三角形没有影响,那么一个长度为 $n$ 的轨迹就可以描述为 $n-2$ 个三角形,每个三角形就用相邻两边长来描述,还得加上第二条线段在第一条线段的逆时针还是顺时针方向,因为如果不加这个就会出现翻不翻转带来的影响,然后就变成了字符串匹配了。不过由于字符集很大,得用 map 来 阅读全文
posted @ 2020-01-25 17:59 Mrzdtz220 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 能看到其他所有点的区域就是轮廓线的半平面交。 然后最小高度就是半平面交与轮廓线这两个一次分段函数的差,极值肯定出现在分段点上,分别求一下即可。 #include <bits/stdc++.h> #define db double const db eps = 1e-9; inline int sig 阅读全文
posted @ 2020-01-25 14:57 Mrzdtz220 阅读(133) 评论(0) 推荐(0) 编辑
摘要: $dp[i][j][k][l]$ 表示 $i$ 个男生,$j$ 个女生,结尾段男生最多比女生多 $k$ 个,女生最多比男生多 $l$ 个。 $dp[i + 1][j][k + 1][\max\{l - 1, 0\}]$ $+=$ $dp[i][j][k][l]$ $dp[i][j+1][\max\{ 阅读全文
posted @ 2020-01-25 14:54 Mrzdtz220 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 感觉我双指针不行啊...写了个multiset过的。看了别人代码改了发双指针。 写几个样例大概就知道跟田忌赛马一样了。 #include <bits/stdc++.h> const int N = 1e5 + 7; int a[N], b[N]; std::multiset<int> st1, st 阅读全文
posted @ 2020-01-25 14:51 Mrzdtz220 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 直接交换需要的次数为 $2^{a+b}$,如果有 $k$ 个循环,每个循环元素为 $x$ 个,只需要交换 $x-1$ 次,那么最后次数就是 $2^{a+b}-k$,本质就是求有多少个循环。一个位置 $(x,y)$ 看成二进制的形式。例如 $a=3, b=2$,位置 $(3,2)$ 看成二进制就是 $ 阅读全文
posted @ 2020-01-24 15:53 Mrzdtz220 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 边染色,顶点的置换导致同构,暴力枚举置换有 $n!$ 种,考虑有多少种置换的贡献相同。 点的一个置换中,对顶点 $u$ 有 $f: u \to p[u]$,边 $(u, v)$ 的置换 $f':(u,v) \to (p[u], p[v])$。当 $u, v$ 同时在一个循环中,循环长度为 $L$,那 阅读全文
posted @ 2020-01-24 14:13 Mrzdtz220 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 根据题意,需要交换的部分会形成若干个不相交的环,独立处理每个环。 每个环可以用环内的最小值去和其它元素交换,或者用全局最小值和环上最小值交换,做一遍再交换回去。 #include <cstdio> #include <cstring> const int MOD = 9973; int m, n, 阅读全文
posted @ 2020-01-23 18:34 Mrzdtz220 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 置换群,相邻有一定限制,那么不能用polya,只能用Burnside。 Burnside本质就是每种置换群种的每个循环要染相同的颜色。 这是个环,就有 $n$ 种置换,每种置换循环节个数为 $d = \gcd(n, i)$,长度为 $\frac{n}{d}$。 每个循环为 $x \to x + d 阅读全文
posted @ 2020-01-23 14:09 Mrzdtz220 阅读(151) 评论(0) 推荐(0) 编辑
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 32 下一页