摘要:
对于无向二元关系,方案数取决于连通块的个数 阅读全文
摘要:
可以通过实现朴素算法后打表解决 结论:一个括号序列合法,当且仅当其不存在长度大于等于 3 的连续段,且存在不超过 2 个长度大于等于 2 的连续段。 阅读全文
摘要:
构造新数组bi=ai-i 阅读全文
摘要:
题目链接 和过去的自己不期而遇 需要进行点边转化以限制1头牛至多只产生1的贡献 阅读全文
摘要:
题目链接 “大胆假设,小心求证”,其他队伍通过题目的时间,也可以为你的思考提供一些参考。 我们可以发现,最后的字符串一定是101010…或者010101…。这样的形式并不美观,我们考虑把它修饰得可爱一些。我们可以把偶数位置的数字都取反。这样,最后的字符串就是111111…或者000000…。 接着, 阅读全文
摘要:
左移7次即可 阅读全文
摘要:
题目链接 在赛场上你消耗了那么多时间还没通过,很大一部分原因在于,这本来是一个【贪心】的模型,你却要用“动态规划”增加思维和编码复杂度 假如没有边界限制,那贪心就可以得到最优解,正确性显然。现在有了边界限制,那从右往左调整一下就好了 阅读全文
摘要:
题目链接 “交互的本质是二分” 本题的询问次数卡得很严,必须保证每次都能让候选点集合严格缩小一半。因此三选二的时候不能任选,而要选较大的两个 点击查看代码 #include <bits/stdc++.h> using namespace std; vector<int>a[100005]; int 阅读全文
摘要:
题目链接 “最少个数的士兵”和“最大流”不匹配,怎么办呢? 你的想法比较朴素。考虑正难则反,补集转化,先让所有格子都放置士兵,让“拿走的士兵”更多 论文的做法更加优雅。让“即对行有贡献,又对列有贡献”的士兵更多 同时,题解的想法也提醒你,没有必要建出每个格子对应的边,直接从相应的行向相应的列连边即可 阅读全文
摘要:
注意可能出现dpx+1在模意义下为0的情况,此时需要额外维护0的个数而不能求逆元 记f[x]表示x子树内包含x的连通子图的个数,g[x]表示全树包含x的连通子图的个数,由于子树的限制,所有fx互斥 【子树互斥模型】 求出f[x]后换根DP求出g[x]。答案即为u-LCA(u,v)上f的和+g[LCA 阅读全文