状态压缩
文章平均质量分 50
不要影响我叠Q
这个作者很懒,什么都没留下…
展开
-
蓝桥杯C++B组2017决赛铺瓷砖
参考自蓝桥杯国赛特训营 题意 有一个 3×10 的空地,往里面铺 1×2 的瓷砖,瓷砖有两种颜色(橙色和黄色),并且任意一个 2×2 的空地的瓷砖颜色不能相同,问共有几种贴法。 分析 数据范围很小,只用铺下3 * 10 / 2 = 15块瓷砖,所以可以枚举所有瓷砖得摆放方式以及颜色。 用深搜枚举每块瓷砖的颜色,当所有瓷砖都贴完并且合法时,记录答案。 空地状态g[x] [y]:-1表示未贴瓷砖,0 表示橙色,1 表示黄色。 当dfs枚举到任意一块没有上色的空地时,有两种贴瓷砖方法(横向...原创 2021-05-22 12:47:59 · 586 阅读 · 0 评论 -
蓝桥杯C++B组决赛---凑平方数
题意 把 0-9 这 10 个数字,不重不漏分成多个组,每个组恰好是一个平方数。问有多少种分组方法? 分析 若要暴力枚举需要分成几组数字,每个组需要分哪些数字,时间复杂度为枚举分组个数 * 枚举每个分组的数字不能接受。换种思路,先确定分组,保证每一组自身都是完全平方数,再考虑把完全平方数组合起来,复杂度可以拆分成预处理完全平方数 + 组合完全平方数。 0-9 能组合出的数字最大为 9876543210,不超过 1e10,可以枚举 1~1e5 的平方并判断是否满足每个数字最多出现一次,为了方便之后的.原创 2021-05-22 12:07:44 · 237 阅读 · 0 评论