摘要:平面上有一个R×C的网格,格点上可能写有数字1~N,每个数字出现两次。现在用一条曲线将一对相同的数字连接,对于数字1~N。试判断是否存在一种连接方式,使得曲线不越过矩形网格边界,且曲线之间不相交?
阅读全文
摘要:一个最小生成树(MST)问题:在一个平面网格上有n个格点,第i个格点的坐标是(x[i],y[i]),构造一条连接点(a,b)和点(c,d)的边的代价是min{|a-c|,|b-d|}。对给定的n个格点构造连通图,使得总代价最小。
阅读全文
摘要:有一棵结点数目为n的无向树。第i条边连接结点a[i]与b[i],权值为c[i]。给出q次查询,以及一个整数k(1≤k≤n),第j次查询给出两个整数x[j],y[j](1≤xj,yj≤n),求解结点x[j]和y[j]通过结点k的最短路径长度。树上的路径问题,可以通过DFS解决。结点x和y通过结点k的最短路径可以分成两部分:结点k到x的最短路径和结点k到y的最短路径。如此,通过一个简单的DFS,求解结点k到i(1≤i≤n)的路径长度dis[i]。则查询的返回值为dis[x]+dis[y]。
阅读全文
摘要:在平面直角坐标系中有一个n元点集U={A[i](x[i],y[i])|1≤i≤n}。考虑以U的子集S中的点为顶点围成的凸多边形P,若这个凸多边形P内(含边界)的点数为k,则这个子集S的权值为f(S)=2^(k-|S|)。求所有子集S的权值之和Σf(S)。
阅读全文
摘要:AtCoder Regular Contest 082C/D题解。
阅读全文
摘要:一个质点,从静止开始运动。按照速度限制,可将运动划分成n个阶段,第i个阶段的时间为t[i]s,速度上限为v[i]m/s。已知这个质点的加速度大小只取0或±1m/s²。以及,质点在最初和最终的时刻速度为0。求质点的最大位移。
阅读全文
摘要:Codeforce Round #432 (div.2) B/C题解。
阅读全文
摘要:有一个n×m的矩阵。最初,这个矩阵为零矩阵O。现有以下操作:行操作“row i”:对第i(1≤i≤n)行的所有元素加一;列操作“col j”:对第j(1≤j≤m)列的所有元素加一。经过有限次操作,矩阵变为G。对于给定的矩阵G,试判断G是否可以由零矩阵O通过有限次的“行操作”和“列操作”生成?若可以,则求一个操作步数最小的方案;否则,返回-1。
阅读全文
摘要:Codeforce Round #419 (div.2) A/B题解。
阅读全文
摘要:假设位运算符“&”“|”“^”是左结合的,且优先级相同,则一个表达式:“x@a[1]@a[2]@...@a[n]”,等价于“(...((x@a[1])@a[2])...)@a[n]”。其中,“@”为位运算符“&”“|”“^”。
将表达式“x@a[1]@a[2]@...@a[n]”表示为一个简单的等价形式:“((x&a)|b)^c”,即“x&a|b^c”。
阅读全文
摘要:Codeforce Round #443 (div.2) A/B题解。
阅读全文
摘要:对于一个由‘a’、‘b’组成的字符串,有如下操作:将字符串中的一个子串“ab”替换成“bba”。当字符串中不含有子串“ab”时,任务完成。求完成任务的最小操作次数。
阅读全文
摘要:Codeforce Round #411 (div.2) A/B/C题解。
阅读全文
摘要:完全二叉树的重要性质:对于结点cur,若cur.id=k,则cur->left.id=2*k,cur->right.id=2*k+1。一个完美二叉树,从根结点开始按层次遍历顺序编号。有若干个球,依次由根结点落下。当一个球落在非叶结点上时,将向左子树或右子树落下,这个方向由当前结点的flag控制。求解指定序号的球最终到达的叶结点。
阅读全文