6/29~9/26 做题总结 POJ篇

 

好久没更新了,一起写了

 

POJ

2871  A Simple Question of Chemistry

 

2877  Chambers Ceramic Conundrum 

就是东北赛热身的那题,DFS,注意题目已经规定放的顺序了,可以判重剪枝

 

2449  Remmarguts' Date

类似东北赛Discovery Land那题,k短路,A*算法,思想有点像Ugly Number,用堆维护,然后扩展

 

1248  Safecracker

做的人不多的水题,描述有点长,DFS

 

1742  Coins

普通多重背包,生成函数都TLE.....要用O(n*v)的,就是加上记录到达某个重量用了多少个i种货币

 

3620  Avoid The Lakes

DFS/BFS水过

 

3624  Charm Bracelet

很直接的背包

 

3449  Geometric Shapes

4k多的代码....

判断图形相交,转化为判断线段相交,说下正方形根据对角线求另外两点坐标的方法:

取中点,到其中任意一个端点,向量为(x,y),则旋转90度后为(-y,x)  (画图很清楚)

实际操作时候可以把坐标都<<1,这样就没有小数了

 

3348  Cows

求凸包的面积,以前写的Melkman的模板很稳定....

 

2079  Triangle

WA一次,TLE一次

求完凸包后有点像旋转卡壳

对于某两个确定的点i,j,枚举k,则三角形i-j-k的面积函数的图像一定有最高点

到达最高点后移动j,重新枚举k,大循环枚举i,画个图比较容易理解

 

1018  Communication System

枚举带宽,我用了sort+lower_bound,挺方便

 

2575  Jolly Jumpers

囧,水题浪费了一次WA...可以不存数,直接处理

 

2756  Autumn is a Genius

java水...注意正数前加+号是无法直接识别的

 

2762  Going from u to v or from v to u?

好题,求弱连通分量

求SCC后缩点重新构图,就是个DAG

每对顶点间单连通则必存在一条链经过所有的顶点
首先入度为0的点必为1个(存在多个不构成链,是DAG,不可能不存在)
开始的想法是根据出度数+去重边直接判定...后来发现有点bug,不一定是树
比如
3 3
1 2
1 3
3 2

比较暴力就是从入度0的点开始DFS遍历所有路线,记录最大深度
之后想到用拓扑排序,每次从栈中取出顶点u,压入栈的u的邻点必定只有一个
但是时间还是一样,应该是求SCC花的时间占的多,对于随机数据缩点后的图点数,边数应该都会减少.
2959  Ball bearings
水题,画个图,PI用2*acos(0)很方便,精度也没问题

1144 Network
求割点个数,很多书上都有的算法,判断树中节点有无到祖先的边

3159 Candies
SSSP....SPFA模板华丽地挂了.....Heap Dijkstra效率不错

1325 Machine Schedule
二分图中,|最小点覆盖|=|最大匹配|

2392 Kindergarten
|最大团|=|补图的最大独立集|
补图是二分图
二分图中,|最大独立集|=|V|-|最大匹配|

2060 Taxi Cab Scheme
|最小边覆盖| (--> 拆点转二分图) =|V|-|最大匹配|

3216 Repairing Company
同2060

1562 Oil Deposits
水题,BFS/DFS

2608 Soundex
还是水

2696 A Mysterious Function
勉强算个记忆化搜索,mod要单独处理

3740 Easy Finding
比较懒得写剪枝.....直接贴DLX过的

1466 Girls and Boys
二分图最大独立集

1631 Bridging signals
看了LRJ的算法艺术前传,里面的LIS写的真好,故重写此题....


2455 Secret Milking Machine
二分答案+最大流验证
尝试SAP,速度很快

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值