「2021-Jul」 杂题乱写
CF1543E
构造妙妙题
第一问貌似直接能得到每个点到 的距离,给 连出去的边一个 的权值,剩下的权值由相邻点扩展即可
第二问看半天能得到 得是 的因数,否则连颜色都分不全,直接无解
剩下部分的构造考虑 ,然后按照上面的序列放到对应位置
确实是构造题的脑量,非常不一般,考虑其正确性
对于一个点 颜色是 ,如果走到另一个颜色是 的点 ,此时必然有
ABC209E
不会做的 越来越多了诶
不难通过各种方式把图建出来,但是这里值得提醒的一点的字符集大小的三次方是个合法的数
而这个题目可以 把边反过来 然后直接按照 函数那样子拓扑实现 就可以了
实际上可能只有我对着有向图想了半天怎么找环
ABC208F
不难发现式子可以用组合数表示,那么如果全部逼到最后一列上面的话,每个点都只能往下走
那么归纳假设 是关于 的 次多项式,
这样子直接写一个 插值就行了,注意预处理点值的时候要暴力
CF1119G
不难证明答案的下界是 ,那么如何构造得到这个值呢?
比较基础的想法减少浪费掉的部分,那么考虑差分之后前缀和可能有精确求和的效果
如果那么如果把所有敌人的生命做前缀和,然后把前缀和 的排序之后冲差分,把得到的数组作为每个组的人数
剩下的就是一个模拟了,不可不说是非常有意思的题目
CF1540D
题目的 的做法如下:
for(int i=x;i<=n;++i) if(now>=b[i]) ++now;
如果把 的边界都变成一个区间 ,能给 贡献的是哪些呢?
这个问题和分成左右两个子问题和合并的过程,那么对于右边的一个元素,权值要减掉左边小于其的个数
这样直接在区间所有信息的集合里面
现在的 变成了 ,是线段树射程范围之内
考虑多测的话在线段树上修改就 了,一种处理方式是 对线段树节点长度进行根号分治
也就是设置一个阀值 ,对于那些长度大于 的点合并子树信息,查询也是把区间分成 的区间去做
时间复杂度
CF1178F
跟着题面定状态,不管状态多复杂!
-
先考虑弱化版的部分: 是一个排列
设 表示当前区间里面的颜色都合法,也就是已经涂过的颜色段要么在包含要么相离
转移考虑涂色一定是涂区间里面标号最小的点的颜色,同时区间一定是跨过其位置的
那么把左边区间可能的凑法和右边可能的凑法求和再乘法即可
时间复杂度
-
如果不是一个排列呢?
不难发现如果出现的连续段 那么一定无解, 因为一次涂色最多整出来两个分界点
缩段之后照样冲区间 ,把所有的当前颜色的的位置,和上面 不同的是存一下每个数两个出现点之间的方案数
实现的时候比较奇妙的一点是上来设
f[i][i-1]=1
CF1178H
首先把问题转化到 两个位置上,这步很好理解,也就是如果满足在交点在 中,那么在 也一定满足不等关系
那么每个点能能换的区间在 有一些,在 有一些,而伴随时间的增长,能交换的对数一定是增多的,那么二分这个
观察一下这个调换的图,非常像一张二分图,这启示我们使用费用流来解决这个问题
建图就直接能交换的之间连一个 的边,但是边数是 的,使用前后缀可以优化
但是每次二分真的都要整网络流吗?不是!
显然我们并不关注每个二分的 的代价,那么整个贪心换掉就行了
第一步想到了后面貌似都是常见套路,为啥我第一步都想不到呢?
NOI2020 制作菜品
这就是所谓思维题吗?我也只好吹爆了
观摩一把数据范围 ,这里想想 时有没有什么新意?
如果两个原料做一道菜一定是合法的,对于三个原料做两个菜的情况,使用小于 的那个和大于 的原料配对,此时问题仍然有解
这东西直接使用 维护
那么如果 的部分有很多菜的量大于 ,那么这时候特判所有菜的量都大于 继续做就行
这部分有
而剩下的 的部分考虑有样例提示会无解,这 启示?如果能分成两个 的两部分有解,否则无解
那么也就是说是不是存在一个子集的和是 的倍数,貌似是 背包经典题?那么 优化即可
NOI2019 斗主地
很简单,使用一个朴素的 表示 轮洗牌之后第 个位置的答案
注意:
考虑设一个 表示局面 变成局面 的概率是 ,这确实是基础计数
猜想这个 是关于 的 次函数,伴随 的增加始终满足
证明貌似可以强行归纳,可能也是基础计数??
既然是多项式,直接使用三元一次方程把系数算一把,每次只转移 个点处理即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律