SDKD SingleTest B 题解 2015-04-03

来源:互联网 发布:mac系统安装 编辑:程序博客网 时间:2024/06/14 14:25

*A:POJ3666  DP+离散化

*B:POJ3667  线段树

C:POJ3668 给出n个点的坐标 求共能连出多少条不平行的直线。可以用数组保存斜率 排序后判断是否有重复 也可以把所有坐标变换为(1,yi)的形式 插入set中 

D:POJ3669 BFS。给出一张图 有m个陨石会在某个时间砸向某点 摧毁该点以及上下左右共五个格子 即该时间后 这五个点均不能经过 求Bessie从(0, 0)开始需要多久到达安全地点(一直不会被摧毁的地方) 若不能输出-1。用一个结构体存储坐标x,y以及到达该坐标的时间t,BFS求最短路即可。

*E:POJ3670 给出一个含有1 2 3的序列 求出最少需要改变多少个数字,使得成为一个最长不升,或者最长不降子序列。(111222333或333222111)。LIS和LDS问题的nlogn解法 二分

*F:POJ3671 同E 只不过数字变为1和2 只考虑升序 没有降序

G:POJ3672 给出时间t和上山下山平坡的时间u,d,f。给出地形图 求t时间内能够往返所到达的最远地点。只需从头开始 每次遇到u和d 将当前时间加上(u+d) (往返) 遇到f加2*f 直到时间大于t为止。

H:POJ3673 给出两个数 按位乘并求和 如123*45即 1*4 + 1*5 + 2*4 + 2*5 + 3*4 + 3*5 = 54. 用两个字符串存储 二重循环求和即可。

0 0
原创粉丝点击