循环枚举——P2089 烤鸡
枚举算法是我们在日常中使用到的较多的一个算法,它简单粗暴,算法的核心是暴力枚举所有可能情况,并进一步从中筛选出满足条件的方案。因为枚举法编程实现最简单,并且得到的结果往往是正确的,所以虽然枚举算法非常暴力,而且速度可能很慢(导致超时),但却...
枚举算法是我们在日常中使用到的较多的一个算法,它简单粗暴,算法的核心是暴力枚举所有可能情况,并进一步从中筛选出满足条件的方案。因为枚举法编程实现最简单,并且得到的结果往往是正确的,所以虽然枚举算法非常暴力,而且速度可能很慢(导致超时),但却...
来看例题:P1618 三连击(升级版) 初步想法仍然是依次枚举三位数每位上的数字,简单暴力的做法是使用九重循环枚举,每一层枚举1~9九个数字,那么需要枚举次,在1s内很可能会超时。 其实可以枚举第一个数,第二个数和第三个数可以通过题目中指出...
来看例题:P3392 涂国旗 国旗从上到下分成三个颜色区域,可以使用双重循环枚举白色区域的高度和蓝色区域的高度,那么剩下的就是红色区域,高度为。可知,: 双重循环的最内层就对应了一个方案。接下来需要计算:1~行全部格子涂成白色需要涂改的格子...
来看例题:P2241 统计方形(数据加强版) 首先来考虑棋盘中正方形和长方形的特征,可以得出一个明显的结论:棋盘中不同行不同列的两个点能够确定一个正方形或者长方形。 但是究竟是正方形还是长方形需要进一步考查两点的坐标关系(通过坐标计算两条边...
先来看一个问题,从 1~ 中选择 4 个数,有多少种选择方法?输出具体的选择方案。 这是一个数学的组合问题,组合不讲顺序(选出来的数不考虑它们位置关系),例如 {1,2,3,4} 和 {1,2,4,3}、{1,3,2,4}、{1,3,4,2...
排列枚举,就是枚举所有元素的排列(要考虑元素的先后顺序)情况。例如三个数 {1,2,3} 的所有排列情况有:{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}一共 6 种情况。 四个数{1,2,3...