上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 26 下一页
摘要: ~~~题面~~~ 题解: 在考场上打的这道题,出人意料的很快就打完了?! 直接用线段树,维护几个东西: 1,lazy标记 : 表示区间赋值 2,mark标记:表示区间翻转 3,l1:前缀最长连续的1的子段长度 4,l0:前缀最长连续的0的子段长度 5,m0:区间内最长的全为0的子段的长度 6,r0: 阅读全文
posted @ 2018-09-09 19:24 ww3113306 阅读(191) 评论(0) 推荐(0) 编辑
摘要: ~~~题面~~~ 题解: 首先我们要转化一下,因为直接求不好求。首先考虑一个点对z的贡献,观察这么一个图: 显然点x对点z的贡献为2,因为LCA的深度为2。LCA可以看做点x和点z分别走向root的两条路径中第一个重合的点,因此,如果我们给x到root的路径上的点都赋1的点权,那么再从z往上走, 因 阅读全文
posted @ 2018-09-09 19:15 ww3113306 阅读(266) 评论(0) 推荐(0) 编辑
摘要: ~~~题面~~~ 题解: 题目要求统计一个区间内数值在[a, b]内的数的个数和种数,而这个是可以用树状数组统计出来的,所以可以考虑莫队。 考虑区间[l, r]转移到[l, r + 1],那么对于维护个数的树状数组就直接加即可。 对于维护种数的树状数组,我们额外维护一个数组num,表示数a在区间内出 阅读全文
posted @ 2018-09-09 17:53 ww3113306 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 本文主要记录几个常见文件调用(表示为了造数据试了n种方法,,,发现了一些神奇的东西,会在下面一一说明。 首先在程序中我们可以打开和关闭程序。 常见的freopen用法简单,但是只能使用一次,如果在程序中多次使用freopen("xxx", "r", stdin) 或者 freopen("xxx", 阅读全文
posted @ 2018-09-07 20:12 ww3113306 阅读(252) 评论(0) 推荐(0) 编辑
摘要: ~~~题面~~~ 题解: 其实是一个神奇的贪心。如果m > n / 2,那么显然无解,否则肯定有解。如果没有相邻不能取的限制,那么直接贪心取前m大即可,但是有这个限制。所以考虑怎么维护这个性质。 首先有一个结论,如果是贪心的取,对于一个点,要么取它旁边的两个,因为是贪心的取的,如果只取了旁边中的一个 阅读全文
posted @ 2018-09-06 16:32 ww3113306 阅读(218) 评论(0) 推荐(0) 编辑
摘要: ~~~题解~~~ 题解: 观察题面可以很快发现这是一棵基环内向树(然而并没有什么用。。。) 再稍微思考一下,假设将这个环中的任意一点设为root,然后去掉root到下面的特殊边(即构成环的那条边),那么就构成了一棵树,并且可以用简单树形DP解决。 再考虑加上这条边的限制,设被去掉的这条边是连接roo 阅读全文
posted @ 2018-09-06 14:18 ww3113306 阅读(202) 评论(0) 推荐(0) 编辑
摘要: ~~~题面~~~ 题解: 设f[i]表示到第i天的代价,cost[i][j]表示第i天到第j天采取同一种方案的最小代价。那么转移就很明显了,直接$n^2$枚举即可。 所以问题就变成了怎么获取cost数组。因为i到j都采取同一种方案,因此这种方案不能经过在i到j这些天出现故障的码头,因为要求的是最小代 阅读全文
posted @ 2018-09-06 14:07 ww3113306 阅读(131) 评论(0) 推荐(0) 编辑
摘要: ~~~题面~~~ 题解: 一栋楼是否已经被前面的楼房遮挡住,可以利用斜率来判断。 因此将原序列转化为斜率。 然后直接用线段树维护一下每个区间最多能看见多少楼房即可。 在更新区间的时候需要在线段树上二分,因为左区间是肯定可以取的,然后设左区间的最大值为k, 那么右区间的贡献就是大于k的最长上升子序列, 阅读全文
posted @ 2018-09-04 13:48 ww3113306 阅读(192) 评论(0) 推荐(0) 编辑
摘要: ~~~题面~~~ 题解: 很久之前做的这道题,今天看差点没看懂QAQ,赶紧来记录一下。 考虑f[i][j]表示i和j是否右边相连,有为1,否则为0,那么f同时可以表示从每个点出发走一步到其他点的方案数。 于是用一个和f长得一模一样的矩阵g来表示从每个点出发到其他点的方案数。 那么考虑g如何转移。 其 阅读全文
posted @ 2018-08-30 17:28 ww3113306 阅读(191) 评论(0) 推荐(0) 编辑
摘要: ~~~题面~~~ 题解: 设$f(d)$表示数$d$的约数和,那么$(i, j)$中的数为$f(gcd(i, j))$,那么有2种枚举方法。1,枚举每一格看对应的$f(d)$是几.$$ans = \sum_{i = 1}^{n}\sum_{j = 1}^{m}{f(gcd(i, j))}$$2,枚举 阅读全文
posted @ 2018-08-16 17:49 ww3113306 阅读(203) 评论(0) 推荐(0) 编辑
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 26 下一页
知识共享许可协议
本作品采用知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本许可协议进行许可。