摘要: 题意 给定一些插头设备和插座,有一些方法可以把其中一些插头变成另一种插头。求无法匹配插座的插头设备个数。 题解 用$map$给每个字符串标号为$a_i$和$b_i$。 读入每种改变插头的方法,连边,权值为$inf$。 然后连边$S \longrightarrow a_i$,权值为$1$;$b_i \ 阅读全文
posted @ 2019-05-23 10:47 jvruodejrLS 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题意 给定一个$n×m$的矩阵。($n×m define FOPI freopen("in.txt", "r", stdin") define FOPO freopen("out.txt", "w", stdout") define FOR(i,x,y) for (int i = x; i = y; 阅读全文
posted @ 2019-05-23 10:45 jvruodejrLS 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题意 给你一个$N×M$的草地,有高地有低地。 收割机从低地走到高地或者从高地走到低地都要花费用$A$,你可以花费用$B$把一块高地变成低地,或者把一块低地变成高地。收割机每行每列都是必须要跑一趟的。 求最小花费。 解析 $S$向低地、高地向$T$建权为$B$的边,相邻的地之间建边权为$A$的边。 阅读全文
posted @ 2019-05-23 10:44 jvruodejrLS 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题意 有一块矩形(也可能是正方形)的飞毯。 给定飞毯的面积$n$和最小可能的边长$a$,求可能有多少种不同边长的飞毯。($1 define FOPI freopen("in.txt", "r", stdin) define FOPO freopen("out.txt", "w", stdout) d 阅读全文
posted @ 2019-05-23 10:40 jvruodejrLS 阅读(165) 评论(0) 推荐(0) 编辑
摘要: Manacher 可以在$O(n)$的时间内求一个字符串的最长回文子串。 "教学视频链接" 例题 HDU 3068 阅读全文
posted @ 2019-05-23 10:39 jvruodejrLS 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 例题:HDU 2222 给$n$个字符串,一个模式串。然后输出匹配次数。 代码 阅读全文
posted @ 2019-05-23 10:38 jvruodejrLS 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题意 三维空间有$n$个点,找到另外一个点,离所有点的最大距离最小。求这个距离。 题解 $1$、最小球覆盖,要找的点为球心。 $2$、模拟退火。 还是补一下模拟退火的介绍吧。 模拟退火有一个初始温度,温度越高,接受较差的解的可能性就越大。每次走完后,都会降低温度,使得接受较差解的可能性变小。在走的过 阅读全文
posted @ 2019-05-23 10:37 jvruodejrLS 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 题意 给一个三维椭球面,求球面上距离原点最近的点。输出这个距离。 题解 模拟退火。 把$z = f(x, y)$函数写出来,这样通过随机抖动$x$和$y$坐标就能求出$z$。 代码 cpp // include include include include include include defi 阅读全文
posted @ 2019-05-23 10:36 jvruodejrLS 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题意 给定一个矩形内的$n$个点,在矩形中找一个点,离其他点的最大距离最小。 题解 模拟退火。 这个题需要$x$和$y$坐标随机动的时候多随机几次。否则就WA了。另外由于随机多次,如果温度变化率太小,就会TLE。 代码 cpp // include include include include i 阅读全文
posted @ 2019-05-23 10:32 jvruodejrLS 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 题意 二维空间中有$n$个运动的点,每个点有一个初始坐标和速度向量。求出一个时间$T$,使得此时任意两点之间的最大距离最小。输出$T$和最大距离。 题解 模拟退火。 这个题告诉了我,初始步长要够大。这是很重要的。 cpp // include include include include incl 阅读全文
posted @ 2019-05-23 10:30 jvruodejrLS 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 题意 给一个$n$,计算 $$\sum_{i=1}^{n}\sum_{j=1}^{i 1}[gcd(i + j, i j) = 1]$$ 题解 令$a = i j$ 要求 $$\sum_{i=1}^{n}\sum_{j=1}^{i 1}[gcd(i + j, i j) = 1]$$ 即求 $$\su 阅读全文
posted @ 2019-05-23 10:28 jvruodejrLS 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 题意 有一棵树,每个节点有一个权值。 任何两个不同的节点都会把他们权值的$gcd$告诉他们的$LCA$节点。问每个节点被告诉的最大的数。 题解 第一次接触到 树的启发式合并 。 用一个set维护每个节点权值的因子。 自下而上,把每一个节点和所有儿子分别合并,记录他们的最大的$gcd$(即两个集合合并 阅读全文
posted @ 2019-05-23 10:27 jvruodejrLS 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 树的启发式合并可以解决很多不涉及修改的子树查询问题。 每次向上合并时,轻链并入重链,可以使得总复杂度由$O(n^2)$变成$O(n\log(n))$。因为每次加入重链,子树大小都会翻倍。 例题:codeforces 600E 给定一棵树,每个节点都有一个颜色值。 定义一种颜色值占领一棵子树,当且仅当 阅读全文
posted @ 2019-05-23 10:26 jvruodejrLS 阅读(225) 评论(1) 推荐(0) 编辑
摘要: 题意 给定一个全排列$a$。 定义子区间$[l,r]$,当且仅当$a_l + a_r = Max[l,r]$。 求$a$序列中子区间的个数。 题解 笛卡尔树上的启发式合并。 $2000MS$的时限,$1965MS$卡过。。 还可以不建树,直接枚举区间,就可以用数组维护了。这种做法比较快。 代码 cp 阅读全文
posted @ 2019-05-23 10:20 jvruodejrLS 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 一些定理 最小点覆盖 $=$ 最大匹配 最大独立集 $= V $ 最小点覆盖 最小边覆盖 $=V $ 最大匹配(对于不存在孤立点的图) 最大流 $=$ 最小割 模板 最大流 费用流 运输问题 裸的费用流。 $S$与货仓建$(x, 0)$的边,货物与$T$建$(x, 0)$的边,货仓与货物建$(inf 阅读全文
posted @ 2019-05-23 10:18 jvruodejrLS 阅读(194) 评论(0) 推荐(0) 编辑

Contact with me