摘要: 各位选手,各位教练,大家好,我是来自清华大学交叉信息学院的陈立杰,今天很荣幸站在这里代表全体参赛选手发言。对于我来说,这是我第一次正式参加ACM的比赛。不过我跟ACM之间的缘分,大概在很早的时候就已经存在了。 我还依稀记得,在我初三的时候,晚上我的一个好朋友在用手机跟妹子聊天,而我在用手机看OI和A 阅读全文
posted @ 2018-03-10 18:56 柳暗花明_liu 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题目描述 本地的重要启示: 在接下来对每一个子问题进行搜索前可以先获得该子问题的搜索目标的极限,通过该极限可以判断对该子问题搜索出的解能否比当前最优解更优;或对该子问题搜索出的搜索目标能否满足要求,如果不能,就没必要了搜下去了,直接跳过对该子问题的搜索。该剪枝可以有效减小对某一子问题的搜索深度。 这 阅读全文
posted @ 2018-03-10 17:25 柳暗花明_liu 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 题干描述 就是一个数独问题 这道题说是简单题,但是我觉得这个“简单”是在对数据结构,递归非常熟悉的基础上,对于我这种新手其实并不简单,也有很多坑等我我去踩 这道题说是剪枝,但是我觉得主要妙点还是好在gw老师的设置的数据结构太好了。见代码。 当要在一个空格子(0)放数字时,直接放那些在这个空格子所在行 阅读全文
posted @ 2018-03-08 19:05 柳暗花明_liu 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 少林寺的宝贝“少林神棍”断成了n根长短不一的小木棒,现在要把这些小木棒重新拼若干跟等长的棍子,求棍长最短是多少? 原题地址 先放上从这道题应该学到的经验: 1,要选择简合适的搜索顺序,如果一个人物分成多步,要优先尝试可能性少的。 (优先尝试长的木棒) 2,要发现表面上的不同,实质上等效的 阅读全文
posted @ 2018-03-07 20:12 柳暗花明_liu 阅读(583) 评论(0) 推荐(0) 编辑
摘要: 等过一阵把思路忘记掉,再回来写,哈哈哈 阅读全文
posted @ 2018-03-04 15:20 柳暗花明_liu 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 题意介绍 初看这道题,想了想没头绪,感觉又要被虐了,按照《算法基础》郭老师的讲解,勉强接受了这个奇怪的状态转移方程,但是还是感觉很吃力,照着视频写了一遍之后,又去网上看了看别人的代码,我的天哪,比郭老师的简洁多了!然后自己独立写了一遍,终于感觉好多了。原本感觉无从下手的难题,最后自己能够独立写出来, 阅读全文
posted @ 2018-03-03 18:04 柳暗花明_liu 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题意描述 有三种解法 n^2 和两个n*log(n) 一个讲得很好的博客:地址 n^2的,动态规划: 动归问题,首先很容易认为这道题的子问题就是,求前n个数字序列的解,这样的错误之处在于,“状态具有后效性”,前n个数字序列的解可能有多种,每一种可能结尾数字不一样,这样对后面的解就有了影响(后效性) 阅读全文
posted @ 2018-03-03 11:18 柳暗花明_liu 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 转载自:地址 Section I正确区分不同的查找算法count,find,binary_search,lower_bound,upper_bound,equal_range 本文是对Effective STL第45条的一个总结,阐述了各种查找算法的异同以及使用他们的时机。 首先可供查找的算法大致有 阅读全文
posted @ 2018-03-03 10:14 柳暗花明_liu 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题目描述 稍微难一点的DP,用到了优先队列来简化代码,每个点有几只奶牛用了很巧的方法处理 算法: 递推式子是:f[i+2]=f[i]+1; ( i+2-2b<=i<=i+2-2a ) f[i]即i点的解 先计算出2a-2b这一段的f[i],然后将节点小于等于i+2-2a处的f[i]值存入优先队列,在 阅读全文
posted @ 2018-03-02 18:31 柳暗花明_liu 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 直接来看代码,来体会递归~ 事实上,这个代码是最最让我体会到递归之美的~ 好美啊~好妙啊~ 阅读全文
posted @ 2018-02-27 21:12 柳暗花明_liu 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题目描述 分析: 代码: 阅读全文
posted @ 2018-02-27 18:41 柳暗花明_liu 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 递归算法就是通过解决同一问题的一个或多个更小的实例来最终解决一个大问题的算法。为了在C语言中实现递归算法,常常使用递归函数,也就是说能调用自身的函数。递归程序的基本特征:它调用自身(参数的值更小),具有终止条件,可以直接计算其结果。 在使用递归程序时,我们需要考虑编程环境必须能够保持一个其大小与递归 阅读全文
posted @ 2018-02-27 13:13 柳暗花明_liu 阅读(1971) 评论(0) 推荐(0) 编辑
摘要: 题意如标题所示,求数字串的子序列中,和最大的那个子序列的和。测试数据规模为100000。 首先从DP的角度考虑 状态:i(数组下标) 状态转移方程: 注:加上“等于零”是为了得到有多解时,的第一个解。(原谅我的字 -_-) 初始边界状态极其值:dp[0]。 最大连续序列和:定义一个max_sum=d 阅读全文
posted @ 2018-02-26 21:19 柳暗花明_liu 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 题目描述 递归函数中为什么最后有一个 =false? 这个问题一开始我胡思乱想了很多,请教了大佬,在自己也想了想,其实答案就只是:要把它标记为false,因为别的路径可能还会访问到它 这种写法在大佬看来是要超时的,没有超时的原因在于深色高亮部分代码: if(step>min) return; 另外, 阅读全文
posted @ 2018-02-26 11:38 柳暗花明_liu 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 题目描述 跟关灯问题相似的地方是,第一眼都很懵逼,还是看了视频之后照着视频的思路过的;毕竟自己来的话效率奇低。 分析: 首先这是一道枚举问题。 枚举:就是从可能的解的集合中一一列举各个元素,判断其是否符合问题要求,符合的就是问题的解。 枚举问题的三个关键是: 一:给出解空间,建立简洁的数学模型。 二 阅读全文
posted @ 2018-02-25 13:40 柳暗花明_liu 阅读(177) 评论(0) 推荐(0) 编辑