摘要:
"题面" 很明显, 由于是求最长路的最小值, 我们可以使用二分求解. 我们二分一个长度$mid$, 将所有使得$dis(u, v)$大于$mid$的点对$(u, v)$找出, 设总共有$m$条这样的边, 那么我们需要改变的改变边一定是被这$m$条边都经过的边, 所以我们只需要找到满足这个要求的长 阅读全文
摘要:
"题面" 大家只要知道这样一个公式就行了: $$ C_n ^ m = C_{n 1} ^ {m} + C_{n 1} ^ {m 1} $$ 这样的话, 就是求$\sum_{i = 0} ^ {n}\sum_{j = 0}^{min(i, m)}[k|C_i ^ j]$的值了... 考虑使 阅读全文
摘要:
"题面" 这好像就是道 暴搜题, 由于可以回溯, 所以顺序其实没有多大的关系, 见代码吧... _具体代码_ cpp include include include using namespace std; int T, n, cnt[20], ans; inline int read() { 阅读全文
摘要:
"题面" 这个题目还是值得思考的. 看到这个题目, 大家应该都想到了这样一个思路, 就是把每个点能够达到的最近的和次近的点都预处理出来, 然后跑就可以了, 现在问题就是难在这个预处理上面, 我们应该如何做呢? 观察到, 近的概念是两点之间的海拔距离最小, 所以我们可以将海拔距离从后往前(毕竟 阅读全文
摘要:
"题面" "秦九韶公式" 看了上面这个之后大家应该都会了, 就是读入的时候边读入边取模, 从$1$到$m$间将每一个数带进去试一下就可以了, 复杂度是$O(nm)$的. 古人的智慧是无穷的!!! _具体代码_ cpp include include define N 105 define 阅读全文
摘要:
"题面" 这是一个比较经典(~~害人不浅~~)的题目啊, 很早就听说过这个题目的大名, 今日得见, 果然非凡题所可以比拟的啊, 行了, 瞎扯就先扯到这里, 题目大意应该是很好解释的, 我就不解释了, 要使得最大值最小啊, 我们第一个想到的肯定是二分啊, 但是这题不用二分(~~我也不知道为啥, 反 阅读全文
摘要:
"题面" 这个题目大意上是这样的:给定一个长度为n的01串, 其中只有k个0, 每次操作时, 从给定的m种长度中选择一种, 选择序列上长度为这种的进行反转操作, 求至少需要多少次操作使得整个串全变为1. 考虑状压dp, 枚举每一位出现情况, $f[i]$表示状态为$i$时最少需要翻转的方案数 阅读全文
摘要:
"题面" 题目的意思大概是给你一棵n个点的树, 求最少需要多少个多少个点, 整棵树都被覆盖(覆盖的意思是所有离被选中的点距离不大于k的点都视作已覆盖). 考虑贪心(其实我考试的时候以为是道树形dp, 虽然说树形dp也是一种可行的方法, 但是估计全网应该没有一篇是这么做的...), 观察到最深 阅读全文
摘要:
"题面" 话说题目前面的那首诗还挺有意境的啊哈哈. 可能今天要把中文的标点都换成英文的了, 先熟悉一下吧... 好了, 进入正题, 求一个矩阵内有多少个子矩阵满足这个子矩阵的和模k为零.看到矩阵和啊, 第一感觉就是前缀和数组,在这里便是二维前缀和, 有这样一个算式: $$ sum[i][ 阅读全文
摘要:
"题面" 先讲点无关的,这道题是真的恶心... 好了,第一眼看到这道题,肯定是准备暴搜的,但是想了一想,省选难度的题目不可能一上来就让你暴搜吧,于是开启了无穷无尽的分析,我们不妨设指定棋子叫做移动棋,所以题目的目标就是利用一个空格子,将移动棋移动至目标点,然后就开始想怎么移动呢??? 如 阅读全文