2016-C02-team1
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
jtjl
== 流水账 ==
== 总结 ==
== 题解 ==
=== A. Lobby [JTJL] ===
签到
=== B. Cameras [JTJL] ===
签到
=== C. Robot [JTJL] ===
SGU472/POI1999有一个类似的推箱子题,是求最短路。赖陆航在20100326的ppt中给出了一个有趣的O((n+m)^3^)的做法。[[BR]]
本题的数据范围是1000。考虑只需要判断是否联通,只需要求出双联通的情况。考虑对于图中每个格子,当箱子在该点上时,能否在箱子附近的四个格子中移动。只有当该点为割点时才会造成无法到达的情况,所以跑一遍Tarjan求出这个,然后用f[i][j][k]表示箱子在(i,j),k表示robot在箱子的哪个方向,bfs一遍即可。[[BR]]
=== D. Laser Game [JTJL] ===
先求出射线间的交点, 删除射线端点到第一个交点的线段,然后对每个点上的线段极角排序之后,建原图的对偶图。显然对偶图的点和边的数量都是n^2^,判定s和t的区域之后跑一遍最短路即可[[BR]]
=== E. Billboard [JTJL] ===
枚举子矩阵的左右边界,然后枚举下边界的同时用平衡树维护上边界的移动即可,复杂度为O(n^3^logn)[[BR]]
~~听说好像set或者heap就可以啦~~[[BR]]
=== F. Funfair [JTJL] ===
考察i和j放置的先后顺序,可以得到L*(1-P)/(P*A)越大的放在前面越有利。所以按照这个顺序排序之后就可以打牌了。[[BR]]
=== G. Beehive [JTJL] ===
剪切变换到直角坐标系,预处理所有点的坐标后加加减减即可。[[BR]]
=== H. DNA Sequencing [JTJL] ===
数据范围比较小,直接用set维护当前答案集,从后往前枚举删除情况,发现合法并不在答案集合中加入即可。由于越长的合法字符串一定比短的优,所以贪心是正确的。[[BR]]
~~刚开始有点手抽写了Trie,然后在上面dp,大概也是能过的~~[[BR]]
=== I. Cafebazaar [JTJL] ===
最大费用流,用负INF边来强制选择即可,不需要上下界[[BR]]
=== J. Fence [JTJL] ===
凸包上的点是关键点[[BR]]
== 补题 ==
=== JTJL ===
* 口胡: C D E
jtjl
流水账
总结
题解
A. Lobby [JTJL]
签到
B. Cameras [JTJL]
签到
C. Robot [JTJL]
SGU472/POI1999有一个类似的推箱子题,是求最短路。赖陆航在20100326的ppt中给出了一个有趣的O((n+m)3)的做法。
本题的数据范围是1000。考虑只需要判断是否联通,只需要求出双联通的情况。考虑对于图中每个格子,当箱子在该点上时,能否在箱子附近的四个格子中移动。只有当该点为割点时才会造成无法到达的情况,所以跑一遍Tarjan求出这个,然后用f[i][j][k]表示箱子在(i,j),k表示robot在箱子的哪个方向,bfs一遍即可。
D. Laser Game [JTJL]
先求出射线间的交点, 删除射线端点到第一个交点的线段,然后对每个点上的线段极角排序之后,建原图的对偶图。显然对偶图的点和边的数量都是n2,判定s和t的区域之后跑一遍最短路即可
E. Billboard [JTJL]
枚举子矩阵的左右边界,然后枚举下边界的同时用平衡树维护上边界的移动即可,复杂度为O(n3logn)
听说好像set或者heap就可以啦
F. Funfair [JTJL]
考察i和j放置的先后顺序,可以得到L*(1-P)/(P*A)越大的放在前面越有利。所以按照这个顺序排序之后就可以打牌了。
G. Beehive [JTJL]
剪切变换到直角坐标系,预处理所有点的坐标后加加减减即可。
H. DNA Sequencing [JTJL]
数据范围比较小,直接用set维护当前答案集,从后往前枚举删除情况,发现合法并不在答案集合中加入即可。由于越长的合法字符串一定比短的优,所以贪心是正确的。
刚开始有点手抽写了Trie,然后在上面dp,大概也是能过的
I. Cafebazaar [JTJL]
最大费用流,用负INF边来强制选择即可,不需要上下界
J. Fence [JTJL]
凸包上的点是关键点
补题
JTJL
- 口胡: C D E