首页 > 其他分享 >AT_arc112_f [ARC112F] Die Siedler

AT_arc112_f [ARC112F] Die Siedler

时间:2024-11-14 15:23:27浏览次数:1  
标签:arc112 Siedler nn Die ARC112F cdots 我们

首先考虑最终状态下该如何操作,显然能换牌就换牌。然而问题仍然非常复杂,该怎么继续思考呢?

我们打开题解发现,在这个问题中,对于一个局面 \((c_1,c_2,\cdots,c_n)\),与另一个局面 \((k,0,\cdots,0)\) 是等价的,为什么呢?因为我们有能换就换的策略,对于第一种牌若不断采取能换就换的策略,肯定可以到达第一种局面。

我们采取这种巧妙的方式使问题变得更加简单。对于每个牌堆或者牌包现在都能用一个数表示了,具体的,我们设 \(d_i\) 表示这个数,那么 \(d_i=\sum_{i=1}^n s_{i,j}2^{i-1}(i-1)!\)。然而,如果 \(d_i\ge 2^nn!\) 怎么办?显然我们会让它操作一轮,然后使 \(d_i\leftarrow d_i-(2^nn!)+1\)。

那么设最终牌数为 \(T\),则

\[T=S+\sum_{i=1}^m d_ix_i+(1-2^nn!)x_{m+1} \]

如果令 \(d_{m+1}=1-2^nn!\),并将 \(S\) 移项,于是这会是一个 \(m+1\) 元的不定方程,而我们可以并不关心解,我们只需要对于每个 \(T\) 判断是否有解即可,可以用裴蜀定理判,设 \(G=\gcd(d_1,d_2,\cdots,d_{m+1})\),如果 \(G\) 很小,我们可以使用同余最短路,如果 \(G\) 很大,则 \(T=Gk+S\bmod G\),可以直接枚举 \(T\)。

然后就做完啦!

标签:arc112,Siedler,nn,Die,ARC112F,cdots,我们
From: https://www.cnblogs.com/lalaouyehome/p/18546041

相关文章

  • RiF: Improving Read Performance of Modern SSDs Using an On-Die Early-Retry Engin
    RiF:ImprovingReadPerformanceofModernSSDsUsinganOn-DieEarly-RetryEngine2024IEEEInternationalSymposiumonHigh-PerformanceComputerArchitecture(HPCA,M.Chun,J.Lee,M.Kim,J.ParkandJ.Kim)文章目录RiF:ImprovingReadPerformanc......
  • 在使用echarts绘制图表时, 如果需要使用渐变色, 则应使用echarts内置的渐变色生成器ec
    series:[{name:'',type:'bar',barMaxWidth:20,label:{show:true,color:'#fff',},showBackground:true,backgroundStyle:{color:'#d5f1f9&......
  • css渐变背景的顶级用法:linear-gradient()
    background-image:linear-gradient(110deg,rgb(1,228,161)49%,rgb(0,0,0)2%51%,rgb(226,237,251)49%); linear-gradient详解:简单实例:从头部开始的线性渐变,从红色开始,转为黄色,再到蓝色:background-image:linear-gradient(red,yellow,blue);linear-gradient(......
  • 【深度学习】从公式推导来深入理解误差反向传播算法2:《深度学习入门基于Python的理论
    《深度学习入门基于Python的理论与实现》中实现了2层全连接神经网络的代码对MNIST数据集的28x28像素0-9手写数字灰度图像进行分类,本文将重点对代码中的two_layer_net类的gradient函数中的误差反向传播的代码进行公式推导验证。验证小批量数据的交叉熵损失函数对第2层权重......
  • css_repeating-linear-gradient
    在不指定背景颜色渲染区间的情况下,repeating-linear-gradient与linear-gradient的没有区别<divclass="testtest1"></div><divclass="testtest2"></div>.test{width:150px;height:150px;border:1pxsolid#ccc;display:inli......
  • 梯度下降(Gradient Descent)详解
    梯度下降(GradientDescent)详解梯度下降是一种优化算法,广泛应用于机器学习和深度学习中,用于最小化损失函数,即通过调整参数来减少模型错误的方法。梯度下降的核心思想是:通过计算损失函数的梯度(即导数),然后沿着梯度下降的方向更新模型的参数,以达到减少损失的目的。基本原理......
  • 【贪心】【堆】tokitsukaze and Soldier
    https://ac.nowcoder.com/acm/contest/22904/10041.为什么要排序?排序是为了先处理人数限制大的士兵。因为人数限制小的士兵会影响后续的选择,优先处理人数限制大的士兵可以让我们选出更多的士兵,最大化战斗力。如果不排序,可能会先处理人数限制小的士兵,导致过早地剔除高战斗力的......
  • R语言机器学习算法实战系列(五)GBM算法+SHAP值 (Gradient Boosting Machines)
    禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者!文章目录介绍教程下载数据加载R包导入数据数据预处理数据描述数据切割调节参数构建模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROCCurvePRCCurve特......
  • Expression-bodied members (C# programming guide)
    Expressionbodydefinitionsletyouprovideamember'simplementationinaconcise,readableform.Youcanuseanexpressionbodydefinitionwheneverthelogicforanysupportedmember,suchasamethodorproperty,consistsofasingleexpression.A......
  • [ARC112F] Die Siedler 题解
    智慧题。思路考虑第二种操作。我们会想到,我们可以先把所有牌转化成第一种牌。即:\[one=\sum_{i=1}^n\prod_{j=1}^i2^{j-1}(j-1)!c_i\]这就是第一种牌的数量。然后考虑,我们可以将第一种牌转化为第一种牌,花费的代价为:\[g=(\prod_{i=1}^n2^{i-1}(i-1)!)-1\]相当于对\(g\)......