比赛链接
开了把vp,C降智导致浪费大量时间/dk/dk
A
贪心,几种凑 的方案的优先度是:
ll a, b, c, ans;
void solve() {
read(a); read(b); read(c);
ll sum = 0;
ll t1 = Min(b/2, c+a/2);
sum = t1;
if(t1 > c) t1 -= c, c = 0, a -= 2 * t1;
else c -= t1;
ll t2 = Min(c/2, a);
a -= t2;
printf("%lld\n", sum + t2 + a/5 + (a % 5 >= 3 && c % 2 == 1));
}
B
设 为 一条线段也没挂的最大挂绳子数。
按顺序枚举每一个绳子,然后用线段树快速转移这个 dp 即可。
C
把 能够把所有的 都添到 的情况特判掉,这样答案只可能 .
开个桶,用前缀和维护值域上的 的个数, 的和,枚举每一个可能的答案 ,然后枚举 的倍数,可以快速统计所需的最小代价。复杂度是调和级数的。
D
状压dp + 费用提前计算。
从前往后枚举 ,设 为考虑集合 已经连在一起且排好序的代价,并且包括提前计算的费用,这里提前计算的费用是使得有一个数想加进来的时候之间按照插排的规则插入进来,走到这个段之前的代价已经在 里面算进去了。
这个提前计算的费用为多少?对于一个位置 如果不是最终的递增段,而是一个路人,那么递增段要经过它并且凑齐的最小代价是递增段在它左边多少和在它右边多少取个 ,也就是 。
形象地:
假如 是当前枚举到的 ,而 是最终要拼成连续段的位置,那么要不然左边所有的 越过 ,要不然右边所有的 越过 ,那么 处需要提前计算的费用就是两边 的个数取 .
E
感性理解一下,,严谨的证明在这里。
离散化一下,在值域上开个线段树,维护值域区间有几个 ,以及它们的和是多少,就能维护答案了。
F
不会。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?