摘要: 原题链接 考察:组合数 思路: 类似高中数学排列组合题....我是fw,还以为是dp,结果就是简单的求组合数....分为放在b,d两类. 排列数这里用的递推方式,所以没用乘法逆元. ##Code #include <iostream> #include <cstring> using namespa 阅读全文
posted @ 2021-06-10 22:32 acmloser 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:计数dp 思路: 隔板法的模板题,适用于求n个苹果分给k个盘子,且每个盘子不为0的排列数. 实际是求$C_^$.需要高精 ##Code #include <iostream> #include <cstring> using namespace std; typedef long l 阅读全文
posted @ 2021-06-10 16:51 acmloser 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:计数dp 思路: 虽然之前接触过计数dp,但是碰到这种题第一反应除了组合数之外毫无想法,今天学计数dp才发现不止组合数这一知识点. 有两种方法.以不同的划分状态依据. 方法一: 定义 f[i] 为i头牛并排站的方案数.以最后一头牛是什么品种来划分.如果最后一头牛为A牛,则剩下的i-1 阅读全文
posted @ 2021-06-10 15:35 acmloser 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:矩阵快速幂 思路: 想了dp转移方程,看了题解发现没有这么复杂,利用邻接矩阵的性质就行了,参考Floyd算法,外层每循环一次,相当于经过了一条边,也是转移到了一个新的状态. 把停留看成自环,城市之间的道路就等同于邻接矩阵的原本意义,但是爆炸就比较难处理.大佬的思路是建立虚点,该点只有 阅读全文
posted @ 2021-06-10 14:33 acmloser 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:前缀和+二分 错误思路: 求每个$kk$矩阵的最大值,没想出来,还以为是dp 思路: 将最大值问题转换为个数问题,求在ans时间内,$kk$矩阵和 = k*k是否为true.这里二分+前缀和(树状数组)解决. 时间复杂度O(\(n*m*log_2 q\)) ##Code #inclu 阅读全文
posted @ 2021-06-10 11:45 acmloser 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:枚举,前缀和 和本题的正解思路有点像的 >Go 题意: 在数组中放三个间断点,使得res最大. 思路: 三个间断点求最值,不能是在前缀区间只取正数,后缀区间只取负数,存在隔了负数出现大正数的情况. 可以枚举中间点mid,求[1,mid]的最大前缀,[mid,n]的最小后缀,两个for 阅读全文
posted @ 2021-06-10 10:22 acmloser 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:线性dp or 枚举 大佬的思路: 0不能出现在1的右边,所以是单调非下降子序列,求最长即可. 本菜狗的思路: 枚举每一个1的位置,求保留前面所有0和后面所有1的长度,取最长即可. ##Code #include <iostream> #include <cstring> #incl 阅读全文
posted @ 2021-06-10 10:12 acmloser 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:贪心+枚举 WA了n次,正解思维其实和A题一样,我想出了A题却没反应过本题,果然还是菜. 错误思路: 分两种方式,一个是从时间少做到时间多的,另一个是横向完成一组一组的子任务. 错误原因: 很明显没有枚举所有方式. 正确思路: 枚举做0~n组任务后,再从小到大做任务的耗费时间. ## 阅读全文
posted @ 2021-06-10 10:05 acmloser 阅读(40) 评论(0) 推荐(0) 编辑