盖世计划--0725--B班训练

A#

结论题。

容易做差去考虑,设 ci=aibi,每次操作就是在 c 序列上选择 k 个位置,奇数位 +1,偶数位 1。这并不会改变区间和,所以有解的必要条件是区间和为 0

这还不够,转化到前缀和上考虑,我们发现操作只会让前缀和变大,所以另一个条件就是任意位置的前缀和小于等于 0

考虑最少的操作次数,再分析操作,每一次操作可以让前缀和上若干区间 +1,并且由于有解,区间最后一个位置前缀和 ci 一定为 0,可以构造一组方案,使得答案为区间前缀和最小值的相反数。

维护区间最大/小值复杂度 O(nlogn)

B#

写过了。简单状压。

C#

区间 dp。

写过了。可行性问题的主要优化方式就是把状态内存的 0/1 换为最优位置等更好的信息,分段维护信息,减小复杂度。

D#

写过了。简单状压。

E#

图论题。

首先根据内向基环树的充要条件:

具有 n 个点 n 条边的联通块,任意节点有且只有一条出边

所以从内向基环树上考虑,最终的答案一定是一个环,也就是每个点有且仅有一条入边。

将树断成若干链,要使答案最优,考虑贪心,每个节点独立,所以保留代价最大不删即可。

然后发现在环上的点有时是错的:如果环上所有边都保留,那么就不是链了。

所以环上至少断一条边,这条边一定是改变后答案增加最小的边。

复杂度 O(n)

F#

简单状压。

G#

状压 dp。

实数范围内的随机显然一点思路都没有,考虑转化条件。

人类智慧:设 yi=xi0.5,那么限制就变成:

  1. yi+yj0
  2. yi+yj0

这两个式子的判断实际上只与绝对值大的数有关。具体的说:不妨设 |yi||yj|,那么 yi+yj0 的充要条件就是 |yj|0。这样每个位置就只关心正负性了,脱离实数就好做了。

这启发我们按绝对值从小到大考虑 yi,这样每条限制就只和前面的数相关了。考虑状压,设 fs 表示考虑了当前集合 s 中的位置的满足限制(只考虑集合中相互的限制)的方案数。转移枚举集合中的最大值满足限制下是取正还是取负。

考虑这样的方案数实际上是啥。实际上是长度为 n01 串从小到大考虑后满足限制的方案数。每个 1 数量相同的 01 串有 n! 种排列,而满足大小关系的排列只有 1 种,所以总共的情况为 2nn! 种,答案需要除以 2nn!

posted @   Fire_Raku  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示