Codeforces Round #234 (Div. 2)

来源:互联网 发布:苹果越狱音乐软件 编辑:程序博客网 时间:2024/06/15 20:54

题目 : http://codeforces.com/contest/400

AInna and Choose Options

把12个字符拆成大小为1*12, 2*6, 3*4, 4*3, 6*2, 12*1的矩阵, 问你哪些矩阵存在一列都是X,输出。 暴力。 

BInna and New Matrix of Candies

给一个1000*1000的矩阵, 每一步选择全部的行进行走, 知道G走出界面活或者碰到S停下来, 这样一步结束。 简单模拟下。

CInna and Huge Candy Matrix

给定一个矩阵是x步顺时针90度旋转,y步平面反射,z步逆时针90度旋转操作后的。 问你现在矩阵上的点在原来矩阵上点的坐标。 简单数学题。 

DDima and Bacteria

给点k<=500个集合, 总共n <= 1e5 个点, 然后是m条有权值的边, 问你是否每个集合都是联通的(同一个集合任意两点距离为0), 联通的情况下输出每个集合到其它的集合的最短距离。

首先把边按权值小的排序后,把所有权值为0的边的两点用并查集并在一起, 然后判断是否同类型的全部在一起就行了。 最后用Floyd算出最短路。 

EInna and Binary Logic

告诉你长度为n <= 1e5的数列, S = a[1] + a[2] + ... + a[n] + a[1]ANDa[2] + a[2]ANDa[3]+.....a[n-1]ANDa[n] + a[1]ANDa[2]ANDa[3] + ....a[1]ANDa[2]ANDa[3]...ANDa[n]  

AND就是C/C++中的 &  运算 , m 次修改, m 次询问

首先是对于a[i]写成二进制形式,因为 &运算是在二进制下进行操作的, 所以每一位计算的结果加起来就是S,然后YY题意其实就是求b[] = 100101111011011...这样长度为n的数列中满足[i, j]区间所有元素都是1的区间个数, 其中1 <= i <= j <= n。

这样的其实只有一个线段树来维护就行了, 每个区间维护三个值, L : 区间从左边起到出现第一个0为止总共有多少个1, R : 从右边起出现第一个0为止总共有多少个1, sum :区间里面有多少个区间符合要求。

合并的时候 大区间的sum = 左儿子的sum + 右儿子的sum + 左儿子的R * 右儿子的L.

最后注意会爆int就行。

0 0
原创粉丝点击