2020-2021 Winter Petrozavodsk Camp, Day 5

链接

完全被 Clovers 带飞了。

M. Discrete Logarithm is a Joke

J. Increasing or Decreasing

G. Remove the Prime

I. Trade

签到题。

A. Assignment Problem

直接暴力 dfs 就好了,毛估估一下复杂度 O(22mm+n)

E. Smol Vertex Cover

首先显然有 CM,所以只需要判断是否有 C=MC=M+1 即可。

M 可以用带花树求出。对于 C=M 可以发现一条边两段至少有一个在点集里,考虑对于匹配的点建 2-sat 求解即可。对于 C=M+1 暴力枚举额外选的一个点,然后再跑 2-sat 即可。

复杂度 O(nm)

C. Multiple?

结论:答案为 (n1k1)φ(n)

考虑一个性质:至少有一种数出现次数超过 n2。证明:假设非众数数字个数为 t,将 t 中数字两两求和,至多少有 min{t,nk2} 种不同的数。

那么这种数 x 必须有 (x,n)=1。考虑令所有数乘上 x1,这样众数就变成 1 了。

容易发现这样要求剩下 n2k 个数的和不能超过 n2,否则一定不合法。

可以发现去掉至少有 n21 的限制,总共 34n 个数的和不能超过 n 同样有至少 n21

所以最后就是一个插板,组合数暴力计算可以通过。

B. Lockout vs tourist

枚举当前已经选掉哪些点,从后往前,这样可以知道当前如果和对手选一样的结果,期望会是多少。

Bi 为与对手选了一样的之后的期望,令 qi 为对方决策为 i 的期望。在 qi 没有限制的情况下,根据纳什均衡容易得到:存在常数 k 满足

i,Ai+qi(BiAi)=k

根据纳什均衡,k 即最大收益。

qi=AikAiBi

qi=1AikAiBi=1

k=AiAiBi11AiBi

因为 qi 有不为负的限制,所以最后如果 Aik,那么直接放弃之后的所有点(换句话说对手不会去管这些点)。如果 Aik,BiAi,那么对手放了还不如不放,同样会放弃,不过此时应该令 k=Ai

复杂度 O(2nnlogn)

L. Extreme Wealth

考虑 dp,用 fi,j 表示还有 i 个红色和 j 个蓝色的期望倍率,不妨假设 i<j。假设当前钱数是 1,赌了蓝色 x 的钱(负数表示赌红色),期望收益是:

ji+jfi,j1(1+x)+ii+jfi1,j(1x)

要么 x=1 要么 x=1(细思极恐)

算一算发现决策没有影响。换句话说一直摸鱼直到袋子里只有一种颜色的球然后 all in 即可。

所以最后贡献就是

2n+m(n+mn)

正经做法:考虑 n=m 时可以斯特林公式近似,对于其余情况可以发现每 V 至少 ×2,所以直接暴力乘过去即可。

暴力做法:

2n+m(n+mn)=e(n+m)ln2+lnn!+lnm!+ln(n+m)!

lnn! 有一个非常牛逼的近似。直接用 python 计算即可。

posted @   Flying2018  阅读(418)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示