摘要:
"题目" 考虑一下把$0$看成$ 1$,那么就是找到一条边权和为$0$的路径,且这条路径可以被分成两段,边权和都是$0$ 没有第二个限制就是点分裸题了 ~~其实有了第二个限制还是点分裸题~~ 考虑那个断点肯定会存在于当前分治重心的某一边,或者直接在分治重心上,我们在求每个点到分治重心的距离的时候判断 阅读全文
摘要:
"题目" 感觉这种题好套路啊,怎么又是这个做法 癌不过怎么没有人和我一样些写套路做法,那干脆来写个题解吧 我们考虑枚举区间的右端点,这样我们只需要考虑从$1$到$i$的最大区间就好了 由于我们选择了这个位置作为区间的右端点,首先产生的贡献是这个电影的价值,但我们上一次看得这个电影就不能产生贡献了,而 阅读全文
摘要:
"只有学校里的电脑才能看的题目" 昊哥从牛客搬的,懒得找原题了 题意就是多组询问,每次询问一条树上路径,将这条路径上的点拿下来做$0/1$背包,求使得点权和为$K$的倍数的方案有几种 $n include include include include define max(a,b) ((a) (b 阅读全文
摘要:
"题目" 曾经我觉得这道题好难啊,同余类最短路好难啊 其实很简单的 我们找到所有系数中最小的那一个$mx$ 让所有运算都在$mod\ mx$的意义下进行 我们能得到的数就是$k\times mx+p$,当然反映在运算结果上我们就只能看到$p$ 我们发现我们能够凑出$k\times mx+p$就能凑出 阅读全文
摘要:
"题目" 这题好傻啊 就是按照题目说的先跑一遍最短路,之后建出一张最短路$DAG$在上面拆点最大流就没了 代码 cpp include include include include include define max(a,b) ((a) (b)?(a):(b)) define min(a,b) 阅读全文
摘要:
"题目" 好神仙的题目啊啊啊啊啊 没什么思路,发现了题解里的一句$(i,i+1,0,inf a_i)$就有点懂了 我们可以考虑一下我们如果就按照上面的方式来连边我们的最大流是什么 显然是$inf max(a_i)$ 这显然取决于最小的那一条边的流量 但是我们如果想让最后的流量为$inf$,就需要额外 阅读全文
摘要:
"题目" 这题的数据有点水,暴力合并$set$好像过了 分析一下这个题的性质,发现我们一条非树边就会形成一个环,而我们要求选择两个非树边,就会形成两个环,要求不走重复的点,就是说我们需要走一个大环,且必须经过这两个小环 显然需要这两个小环有至少一条公共边 发现问题转化成了求 有多少对路径,这对路径有 阅读全文
摘要:
"题目" 好题啊 先把两种贡献翻译成人话 对于$(i,j)$,如果$a_i,a_j$恰好是$[i,j]$之间的最大值和次大值,那么$(i,j)$产生$p1$的贡献 否则对于$(i,j)$,$a_i$是最大值或者$a_j$是最大值,那么就产生$p2$的贡献 哎这个一个最大值一个严格次大值好像有点眼熟啊 阅读全文
摘要:
"题目" 哈哈哈哈哈哈哈哈哈哈我还没自闭 好像前后调了两天了 哈哈哈哈哈哈哈哈哈哈我还没自闭 这道题就是给定一个小写字母串,回答分别把每个位置上的字符替换为$ $后的本质不同的子串数 首先就是跨过这个特殊字符的字符串出现次数显然都是$1$,这部分的贡献就直接是$i\times(n i+1)$ 之后我 阅读全文
摘要:
"题目" 来学$2$ $sat$了 这个东西确实不难 这个算法就是给你一堆$bool$变量$x_1,x_2...x_n$,之后给你一些限制 限制的形式就是给你一对$(u,o1,v,o2)$ 让$x_u=o1$或者$x_v=o2$ 之后满足所有限制 这个东西非常容易就能抽象成一个图论模型 我们把每个$ 阅读全文