Climber.pI的OI之路

Through the darkest dark,may we see the light.

Problem List (3.12 - 3.18)

3.12

MAR11 Bronze Division [AK]
[战术]先通读试题,想到大概算法,然后具体实施.测试了极限数据.
[注意]题目描述细节; 字母打错;
读题时间 27min

charms 69in
[大意]题目中给出一条链子,然后从中间吊起. 链子上还挂有链子,求每个链子在重力作用下的末端值.
[算法]O(N),做一个数组映射吊起后链子的位置,逐个链子计算,输出.

pathfind 110min
[大意]给出一个邻接矩阵和起点,算最短路.
[算法]O(N^2), bfs求最短路. 输出时利用flag变量, flag=0时输空格, 反之不输出.

spiral 53min
[大意]蛇形数阵
[算法]O(N^2), 若当前方向可前进, 继续填充; 反之,按照 右->下->左->上的顺序换方向.

3.13

USACO Contest get to Silver Division Success!

MAR11 Silver Division
[战术]通读题目,没有设计进一步的数据.
读题时间 22min

meetplace 90min
[大意]寻找树上任意两节点的最近公共祖先.
[算法]O(M*N^2), 期望得分30~50.
利用数组模拟链表存储树,对于每次询问用O(N^2)的时间用数组循环查找最近公共祖先.
[进一步的改进]把循环查找公共祖先的时间降到O(NlogN), 总复杂度O(N^2logN), 可以AC. 具体方式不明

packdel 44min
[大意]稀疏的无向图最短路
[算法]O(2N), 期望得分100, 裸的SPFA, 利用临界表存储.

spiral 63min
[大意]给出N个坐标,判断任意四点可成平行四边形的个数(包括重合情况).
[算法]O(N^4), 期望得分10~30, 操作数为C(4,N), 考虑常数的话N上限为200
利用四重循环生成子集(元素个数为4), 坐标判断(讨论AB, AC, AD为对角线的情况, A.x + B.x == C.x + D.x, y同理), 计数输出.
[进一步的改进]无

3.14

fence6 unAC
质心法,研究样例,发现缺少判断条件

3.15

ditch AC 学习最大流增广路算法的邻接矩阵实现,基本照抄lrj白书
*两点多边处理方法:合并
?如何用邻接表实现

3.16

ditch 30min AC 复习最大流增广路算法的邻接矩阵+BFS实现
*使用memset清空数组, 应在任何操作之前
*文件名(潜在问题)

stall4 38min AC 二分图最大匹配的网络流实现[参照Section 4.2.0 Text]
*起点和终点到对应点的流量限制是1而不是无限大, 因为流量限制对边而言
*注意两个集合的点的标号

3.17

ditch 15min AC 复习最大流增广路算法的邻接矩阵+BFS实现
*边权回溯修改错误

job 40min -

posted on 2011-03-19 19:41 Climber.pI 阅读(133) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理