软件设计模式 — 行为型模式
代码全部贴在github。因为UML图挂在processon上了,不过没有加连接。等写完全文就把链接加上。 首先是对象的行为模式: 1. 策略模式 针对一组算法,将每个算法封装到具有共同接口的独立类中,从而使得他们可以相互替换。
Agent工程师 / 软件工程师 / 技术写作者
专注于编程技术、机器学习和开发工具。分享实践经验,探索技术的本质,记录学习的旅程。
代码全部贴在github。因为UML图挂在processon上了,不过没有加连接。等写完全文就把链接加上。 首先是对象的行为模式: 1. 策略模式 针对一组算法,将每个算法封装到具有共同接口的独立类中,从而使得他们可以相互替换。
拖了好久才写这份总结,中间考试,聚会,等等都推迟了这事儿。写的过程中一度想要不写了,可能是觉得结果有些不尽人意吧。 赛程 早上6点多起床,然后吃了个早饭,大概7点钟出发,路上前面的两位都在听歌,我因为耳机找不到,也没有下电影,思想神游了4个小时,也是挺佩服自己的 — 或者是刷微博?
浙江省赛题目,分析后直接暴力即可,奈何场上脑子里全是floyd,WA无数次。 做题一定要先分析时间复杂问题,采取暴力方法,然后再考虑复杂问题解决方法。
隐式图搜索,多个状态然后减枝。。没看懂李大大所说可以承受是个啥意思。。 做起来实在太累了。。减枝的部分看了别人的代码,发现着实麻烦,不如用优先队列来的痛快=- =还有用优先队列做的= =
问能不能拼接一条项链,条件是首尾相同构成环。 这个题的坑在: 虽然保证连通,但是不一定每个颜色都有,所以单纯的暴力euler(1)是很愚蠢的。 题目本身是要求顺序输出的,也就是dfs不能回溯,如果回溯,为了保证准确性,需要交换uv的位置来保证。
项链和手镯。 项链的问题在于不可以翻转,因此少了一种置换,而手镯则可以反转。然后我们计算旋转的置换。 旋转的步长可以是0,i,2i…然后我们可以得出循环一共有n/gcd(i,n)个元素,因此,我们可以计算出一共有gcd(i,n)个循环。则不定点的个数为