摘要: 题目链接 题目大意 你有 n 只铅笔,每个铅笔的饱和度是 a[i]。 现在你要把铅笔放进盒子里,盒子可以有任意个,但是每个盒子里至少要放 k 只铅笔。 并且对于一个盒子里任意两只铅笔 i 和 j 必须满足他们的饱和度差异不超过 d 即 |a[i] - a[j]| ≤ d问是否存在一种可行的放法。 1 阅读全文
posted @ 2021-08-24 20:44 hunxuewangzi 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 其实本题就是第二类特兰数的式子 \(dp[i][j]=dp[i-1][j]*(i-1)+dp[i][j-1]*(k-j+1);\) 但是$n$太大,所以使用矩阵快速幂递推 然后再对所有矩阵求和即可 代码 #include<set> #include<map> #include<q 阅读全文
posted @ 2021-08-24 19:46 hunxuewangzi 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目大意 计算$a1+a2+...+a^k$ \(k\leq10^9,sz\leq30\) $a$是矩阵 题目思路 要利用二分思想,感觉其实是分治的思想 我们先想一下$a1+a2+a3+a4+a5+a6$ 这个式子怎么求 \(a^1+a^2+a^3+a^4+a^5+a^6=(1+a^3)( 阅读全文
posted @ 2021-08-24 17:41 hunxuewangzi 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 看起来简单,其实不然 本质上就是判断第$i$个字符是不是在第$k$个子串中 代码 #include<set> #include<map> #include<queue> #include<stack> #include<cmath> #include<cstdio> #inclu 阅读全文
posted @ 2021-08-24 15:33 hunxuewangzi 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目大意 给定一个 n 个点 m 条边的图,请你求出一个有根树。 满足每个点的深度和它到父节点的边权乘积之和最小。 n ≤ 12,m ≤ 1000 题目思路 本来我想的是设$dp[i][s]$表示以$i$为根节点,集合为$s$的最小答案但是发现根本转移不了 考虑到点数只有12个,可以考虑状 阅读全文
posted @ 2021-08-24 11:46 hunxuewangzi 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 也算是一个比较简单的状压问题不过稍微有点小技巧 设$dp[s]$表示消除集合$s$的最小步数 每次枚举集合外的两个点构成一个抛物线,然后再去转移即可 预处理$sta[i][j]$表示$i$点和$j$点构成抛物线可以消除哪些小猪 这样复杂度是$2nn2$但是可以优化到$2^nn$ 阅读全文
posted @ 2021-08-24 10:35 hunxuewangzi 阅读(47) 评论(0) 推荐(0) 编辑