09 2018 档案

摘要:~~~题面~~~ 题解: $$ans = \sum_{i = 1}^{n}\sum_{j = 1}^{m}{\frac{ij}{gcd(i, j)}}$$ 改成枚举d(设n < m) $$ans = \sum_{d = 1}^{n}\sum_{i = 1}^{n}\sum_{j = 1}^{m}[g 阅读全文
posted @ 2018-09-30 19:37 ww3113306 阅读(204) 评论(0) 推荐(0)
摘要:~~~题面~~~ 题解: 首先观察到,如果没有x的话,这就是一个2-sat问题。 建图方式:对于限制d1 c1 d2 c2,其中d1, d2分别代表比赛编号,c1, c2代表出场的赛车。 1,如果d1不能选c1,那么该限制是不会起到作用的,所以不连边。 2,否则如果d2不能选c2,那么意味这d1-c 阅读全文
posted @ 2018-09-30 18:48 ww3113306 阅读(165) 评论(0) 推荐(0)
摘要:~~~题面~~~ 题目大意: 有n个人,m个座位,每个人可以匹配的座位是[1, li] || [ri, m],可能有人不需要匹配座位(默认满足),问最少有多少人不能被满足。 题解: 首先可以看出这是一个二分图匹配,根据hall定理,我们只需要求出max(人的子集大小 - 被选出的人可以选的座位集合大 阅读全文
posted @ 2018-09-30 17:13 ww3113306 阅读(408) 评论(0) 推荐(0)
摘要:CF上的题,就不放链接了,打开太慢,直接上题面吧: 平面上有n个点, 第 i 个点的坐标为 ($X_i ,Y_i$), 你需要把每个点染成红色或者蓝色, 染成红色的花费为 r , 染成蓝色的花费为 b .有m个限制条件, 有两种类型, 第一种类型为$x = l_i$ 上的红点与蓝点个数差的绝对值不超 阅读全文
posted @ 2018-09-25 01:14 ww3113306 阅读(920) 评论(0) 推荐(0)
摘要:顾名思义,带上下限网络流即对于网络流中的每一条边,都带有流量的上界和下界。 普通的网络流可以看做下界为0的上下限网络流。 1,无源汇带上下界可行流。 定义一个数组d[x]表示图中点x的入度下限和-出度下限和。 建图方式为: 对于图中每一条边,都连流量为上界-下界的边,并在加边的时候统计d[x]。 对 阅读全文
posted @ 2018-09-25 01:12 ww3113306 阅读(241) 评论(0) 推荐(0)
摘要:虚树听起来是一个很高大上的东西,实际上实现起来是比较简单的。 大致的意思是说,对于一棵树而言,也许每次询问我们只需要用到其中的部分节点,因此如果每次询问我们要对全部的节点都做一次处理的话,显然会造成浪费,且很可能会超时。 这时就需要虚树了。 因为有些节点是完全无用的,但你又不能因此毁了原树——说不定 阅读全文
posted @ 2018-09-15 16:50 ww3113306 阅读(453) 评论(0) 推荐(0)
摘要:st表是一种基于倍增思想的DP。 用于求一个数列中的某个区间的最大/最小值。 用st[i][j]表示从第i个开始往后2^j个点,最大的是多少。 我们令k[i]表示2^i等于多少 那么有转移方程 st[i][j] = max(st[i][j - 1], st[i + k[i - 1]][j - 1]) 阅读全文
posted @ 2018-09-15 16:43 ww3113306 阅读(299) 评论(0) 推荐(0)
摘要:~~~题面~~~ 题解: 首先观察题面,直觉上对于一头奶牛,肯定要给它配pi和qi符合条件的草中两者尽量低的草,以节省下好草给高要求的牛。 实际上这是对的,但观察到两者尽量低这个条件并不明确,无法用于判断,因此要考虑一些其他的方法。 首先我们把牛和草都放在一个数组里,然后按照口感给它们排序。这样对于 阅读全文
posted @ 2018-09-09 22:28 ww3113306 阅读(241) 评论(0) 推荐(0)
摘要:~~~题面~~~ 题解: 乍一看还是挺懵逼的。和HH去散步很像,思路也是类似的。 复制一段我在HH去散步的题解里面写的一段话吧: 考虑f[i][j]表示i和j是否右边相连,有为1,否则为0,那么f同时可以表示从每个点出发走一步到其他点的方案数。 于是用一个和f长得一模一样的矩阵g来表示从每个点出发到 阅读全文
posted @ 2018-09-09 22:01 ww3113306 阅读(178) 评论(0) 推荐(0)
摘要:~~~题面~~~ 题解: 在考场上打的这道题,出人意料的很快就打完了?! 直接用线段树,维护几个东西: 1,lazy标记 : 表示区间赋值 2,mark标记:表示区间翻转 3,l1:前缀最长连续的1的子段长度 4,l0:前缀最长连续的0的子段长度 5,m0:区间内最长的全为0的子段的长度 6,r0: 阅读全文
posted @ 2018-09-09 19:24 ww3113306 阅读(201) 评论(0) 推荐(0)
摘要:~~~题面~~~ 题解: 首先我们要转化一下,因为直接求不好求。首先考虑一个点对z的贡献,观察这么一个图: 显然点x对点z的贡献为2,因为LCA的深度为2。LCA可以看做点x和点z分别走向root的两条路径中第一个重合的点,因此,如果我们给x到root的路径上的点都赋1的点权,那么再从z往上走, 因 阅读全文
posted @ 2018-09-09 19:15 ww3113306 阅读(276) 评论(0) 推荐(0)
摘要:~~~题面~~~ 题解: 题目要求统计一个区间内数值在[a, b]内的数的个数和种数,而这个是可以用树状数组统计出来的,所以可以考虑莫队。 考虑区间[l, r]转移到[l, r + 1],那么对于维护个数的树状数组就直接加即可。 对于维护种数的树状数组,我们额外维护一个数组num,表示数a在区间内出 阅读全文
posted @ 2018-09-09 17:53 ww3113306 阅读(143) 评论(0) 推荐(0)
摘要:本文主要记录几个常见文件调用(表示为了造数据试了n种方法,,,发现了一些神奇的东西,会在下面一一说明。 首先在程序中我们可以打开和关闭程序。 常见的freopen用法简单,但是只能使用一次,如果在程序中多次使用freopen("xxx", "r", stdin) 或者 freopen("xxx", 阅读全文
posted @ 2018-09-07 20:12 ww3113306 阅读(268) 评论(0) 推荐(0)
摘要:~~~题面~~~ 题解: 其实是一个神奇的贪心。如果m > n / 2,那么显然无解,否则肯定有解。如果没有相邻不能取的限制,那么直接贪心取前m大即可,但是有这个限制。所以考虑怎么维护这个性质。 首先有一个结论,如果是贪心的取,对于一个点,要么取它旁边的两个,因为是贪心的取的,如果只取了旁边中的一个 阅读全文
posted @ 2018-09-06 16:32 ww3113306 阅读(228) 评论(0) 推荐(0)
摘要:~~~题解~~~ 题解: 观察题面可以很快发现这是一棵基环内向树(然而并没有什么用。。。) 再稍微思考一下,假设将这个环中的任意一点设为root,然后去掉root到下面的特殊边(即构成环的那条边),那么就构成了一棵树,并且可以用简单树形DP解决。 再考虑加上这条边的限制,设被去掉的这条边是连接roo 阅读全文
posted @ 2018-09-06 14:18 ww3113306 阅读(211) 评论(0) 推荐(0)
摘要:~~~题面~~~ 题解: 设f[i]表示到第i天的代价,cost[i][j]表示第i天到第j天采取同一种方案的最小代价。那么转移就很明显了,直接$n^2$枚举即可。 所以问题就变成了怎么获取cost数组。因为i到j都采取同一种方案,因此这种方案不能经过在i到j这些天出现故障的码头,因为要求的是最小代 阅读全文
posted @ 2018-09-06 14:07 ww3113306 阅读(141) 评论(0) 推荐(0)
摘要:~~~题面~~~ 题解: 一栋楼是否已经被前面的楼房遮挡住,可以利用斜率来判断。 因此将原序列转化为斜率。 然后直接用线段树维护一下每个区间最多能看见多少楼房即可。 在更新区间的时候需要在线段树上二分,因为左区间是肯定可以取的,然后设左区间的最大值为k, 那么右区间的贡献就是大于k的最长上升子序列, 阅读全文
posted @ 2018-09-04 13:48 ww3113306 阅读(203) 评论(0) 推荐(0)

知识共享许可协议
本作品采用知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本许可协议进行许可。