码迷,mamicode.com
首页 > 其他好文 > 详细

coedforce #441 Div2不详细解题报告

时间:2017-10-18 23:45:14      阅读:375      评论:0      收藏:0      [点我收藏+]

标签:暴力   nbsp   不同   nlog   两种   div   同余   扫描   开心   

A: 每次必然选择相邻边中较短的一条,证明如下:
设当前在1号点,1->2 = a, 1->3 = b, 2->3 = c
假设 a < b 按照选择较短的策略
此时如果选择走a, 那么接下来到达2,应当选择Min(a, c)
此时如果不按照策略走b, 那么接下来到达2, 应当选择Min(b, c)
因为 a < b 所以 a + Min(a, c) < b + Min(b, c)
所以只要暴力走较短的边累计答案就可以了

B: 对于任意一组合法解,所有数都是在%m意义下同余的,证明如下:
a0, a1, a2属于一组合法解中
(a1 - a0) % m == (a2 - a0) % m
(a1 - a0) % m - (a2 - a0) % m == 0
(a1 - a0 - a2 + a0) % m == 0
(a1 - a2) % m == 0
a1 % m == a2 % m
所以只要%m的值开桶,并用vector记录方案就可以了

C: n == x + (x的各位之和)
x很大,直接枚举x并判断超时,但x的各位之和 <= 99
所以枚举x的各位之和, 判断 (n - 枚举的和) 分解后是否 == 枚举的和即可

D: 本质是求冒泡排序的扫描次数
考虑这样一种情况 xoxoxo..(后面都是o)
发现这样的扫描次数是等于x的个数
但是 xoxoo(若干个x)x这样一种情况
显然已经出击右边界的x不需要再比较
所以要减去触及右边界的x的个数
解法1:维护并查集每一次修改,将P[i]和P[i+1]合并,并维护size, 复杂度O(nlogn)
解法2: 考虑触及右边界的x的个数单调不降,维护最左边的触及边界的x的指针,复杂度O(n)

E: 考虑相邻的书的第一个不同位上的字母之间有选了就要选,和不能同时选两种关系,于是就可以开开心心各种乱搞了

F:记录每一个二进制位左边第一个,和右边第一个出现的第一个,然后分治处理每一个区间,rmq找最大值,并算出合法的左右边界

coedforce #441 Div2不详细解题报告

标签:暴力   nbsp   不同   nlog   两种   div   同余   扫描   开心   

原文地址:http://www.cnblogs.com/mangoyang/p/7689829.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!