2021.1.30做题小结

 

### 1.「POJ2549」Sumsets

题意:给出一个整数集合s,找到集合中最大的d,让等式a+b+c=d成立。(四者互异)

思路:预处理 a+b ,查询 d-c

查询方式:1.尺取法 O(n) 2.二分查找 O(logn) 3.Hash O(1)

### 2.第k短路

题意:RT

思路:(1),以原终点t为源点,求解t到所有点的最短距离(即:跑一遍最短路);
(2),新建一个优先队列,将源点s加入到队列中;
 (3),从优先级队列中弹出f(p)距离最小的点p,如果点p就是t,则计
算t出队的次数;
 如果当前为t的第k次出队,则当前路径的长度就是s到t的第k短路
的长度,算法结束;
否则遍历与p相连的所有的边,将扩展出的到p的邻接点信息加入
到优先级队列;

即最短路+A*

### 3.[USACO3.2]Magic_Squares

题意:二维魔方,八种颜色,三种操作。求从初始状态到目标状态操作序列

思路:BFS+康托展开

其中康托展开的作用在于判断是否达到目标状态

### 4.[POJ1961]Period

题意:求一个字符串所有前缀的最小循环节

思路:利用结论:s[1~i]具有长度为 len (len<=i) 循环元的充要条件是 len%i==0 且 s[len+1~i]=s[1~kmp[i]]

(证明在《算法进阶指南》p74)

### 5.[POJ2406]Power_Strings

题意:求一个字符串的循环节

思路:双倍经验题

### 6.[POI2012]A_Horrible_Poem

题意:求区间 [l,r] 循环节

思路:约等于三倍经验题

但直接硬套结论会T,所以需要优化。由上述结论 len%i==0 可知 len 为 i 的质因子

所以可以线性筛出从 1~i 的最小质因子每次如若满足条件,直接 len/= len的最小质因子

### 7.[POJ2022]Squares

题意:给n个点,求可以组成几个正方形

思路:1.枚举任意两个点,根据公式计算出另外两个点坐标是否存在。
2.查找算法,可以用HASH或二分查找。

其中这个公式用到了一点几何(全等)

已知: (x1,y1) (x2,y2)
则: x3=x1+(y1-y2) y3= y1-(x1-x2)
x4=x2+(y1-y2) y4=y2-(x1-x2)
或 :x3=x1-(y1-y2) y3= y1+(x1-x2)
x4=x2-(y1-y2) y4= y2+(x1-x2)

总结:对于题目中涉及到多个变量,且这些变量之间有一些关系时,所有变量一起枚举时间复杂度会爆炸(比如今天做的第一题)可以对关系进行等价替换,在利用 hash/map/二分/尺取/set 辅助枚举,可有效AC

### 8.企鹅qq

题意:http://fzuoj.xndxfz.com/problem/3587

思路:枚举不一样的位置,将这个位置删除在统计一样的的个数

### 9.[POJ2503]Babelfish

题意:http://fzuoj.xndxfz.com/problem/2306

思路:map乱杀

posted @ 2021-01-30 21:16  _Famiglistimo  阅读(67)  评论(0编辑  收藏  举报