2022.5.23-5.29
作者:互联网
做题收获
1.每日一题4441. 谎牛计数
后补
2.每日一题2049. 奶牛摄影
思维题,农夫照相每次会有一只牛移动到新的位置,且每只牛只会移动一次,下一次移动的时候所有牛都会在原始位置,给你每次交换后的排列让你求出初始的排列
对于两只牛A,B假设初始状态为A在B牛前面,只有当A交换到B后面或者B交换到A前面时序列才会改变(B在A前面)且次数最多为两次
而题中给出了五次移动的照片,因此可知当A在B前面的次数大于等于3的时候就可以认为A在B的前面
因此接下来只需要对题目进行按上述规程定义的cmp函数排序一下即可得到正确的序列
3.每日一题2032. 过度种植
原题目:
农夫约翰购买了一台新机器,该机器能够在其农场的任何“轴向对齐”(即具有垂直和水平边)的矩形区域内种草。
不幸的是,这台机器有一天出了故障,并在 N 个不同的矩形区域内进行了种草工作,其中一些区域可能会有重叠。
给定机器工作的具体 N 个矩形区域,请你计算种上草的区域的总面积是多少。
题解
容斥原理,可以二进制枚举不同个数,不同组合的草皮间相交的面积,然后用容斥原理判断是否是加上还是减去此面积
若没有相交的面积返回零
此题还可以用最小圆覆盖去解决,但没学留到以后解决
4.每日一题2023. 连接奶牛
因为n的个数较少,所以可以全排列枚举验证,另外一种方法即为状态压缩,留到下次详细补充题解
5.每日一题 放置多米诺骨牌
一道思维题,因为是1×2的条状积木,用黑白染色将整体地图染色,输出其中颜色较少的数目即可
因为黑白颜色都是间隔的,所以一个积木必定会占有一个白色一个黑色的格子,而最后的最优解必然会将一种颜色用尽无法进行下去后停止
6.DP数的划分
题目:
将整数 n 分成 k 份,且每份不能为空,任意两个方案不相同(不考虑顺序)。
例如:n=7,k=3,下面三种分法被认为是相同的。
1,1,5
1,5,1
5,1,1
问有多少种不同的分法。
题解:
f[i][j]表示数值为i的数分成j份的方案数
在一个数的组成集合中,1是最小的组成单位(当然也可以没有),我们可以对1进行讨论,若有1的情况下,我们可以把这个1去掉
从而转换为求f[i-1][j-1]的个数了
若没有1,则说明所有的数都比1大,因此可以转换为f[i-j][j]将所有的数都减去1
那么不用1,用其他数字去评判可以么?
显然不行,因为这样会有一种情况没法覆盖,假设以2为基准
当组合中既没有2,其他数中有比2小的,这一种状态就没法表示出来
所以选用1去区分最大的好处在于若组合中没有1,那么其他数一定大于1,不会有数小于1
又写了一些搜索题目,也算是有一些收获
`acwing1107. 魔板`
这道题,将普通的坐标状态抽象为一组数,用这一组数去表示状态进而进行搜索
`AcWing 173. 矩阵距离 `
多源bfs的问题,有多个起点,但与最短路解决方式不同的是bfs只需要将起点入队即可
标签:题目,23,题解,每日,前面,一题,2022.5,可以,5.29 来源: https://www.cnblogs.com/zywfc/p/16325421.html