想食麦当劳#5

来源:互联网 发布:文件管理器 知乎 编辑:程序博客网 时间:2024/04/28 10:02

A http://acm.hdu.edu.cn/showproblem.php?pid=5949

水题

B http://acm.hdu.edu.cn/showproblem.php?pid=5950

矩阵快速幂 构造递推式
先把基础矩阵乘起来再乘到输入的矩阵

http://paste.ubuntu.com/25132575/

C http://acm.hdu.edu.cn/showproblem.php?pid=5952

找图中大小为S的完全图
为了防止重复把边都变成序号小连向序号大再用数组储存边的连通性
再对每一个点都跑一次dfs

http://paste.ubuntu.com/25132775/

D http://www.lydsy.com/JudgeOnline/problem.php?id=2002

经典分块算法
记录下一个点和跳出块的距离从后往前递推

http://paste.ubuntu.com/25133317/

E http://acm.hdu.edu.cn/showproblem.php?pid=5968

前缀和枚举子串异或和 维护最大值

http://paste.ubuntu.com/25131799/

需要学习的地方:在求解找绝对值最小的问题中
可以用从一个地方向两边查找同时比较的方法

F http://acm.hdu.edu.cn/showproblem.php?pid=5949

如果l < r则从高位向低位遍历必定会出现在这位 r为1 l为0 的情况
因为[l,r]是可选区间 所以可以选择第二个数字后面的位全部为1

http://paste.ubuntu.com/25132070/

G http://poj.org/problem?id=3376

这里有个很有意思的性质
对于s和t如果能组成回文串
那么把两者中长的t(假设是t)前后倒转 s一定是t的前缀
并且之后的部分是一个回文串
检测这个前缀可以利用trie
检测剩下的部分是否为回文需要用到扩展KMP

然而我还不会扩展KMP 以后再补

H http://acm.hdu.edu.cn/showproblem.php?pid=5977

树的点分治
还不会 之后再补

I http://acm.hdu.edu.cn/showproblem.php?pid=5938

尽量让a+b大 让c*d/e小
枚举两者的区间
枚举计算前者可以组成两个数字的最大和 后者固定c d各一位(最小化)

http://paste.ubuntu.com/25132200/

原创粉丝点击