首页 > 其他分享 >3.动态规划专题

3.动态规划专题

时间:2024-03-19 17:45:19浏览次数:17  
标签:专题 min ll times cost ans 动态 规划 sum

动态规划专题

\(A\) CF494C Helping People

\(B\) CF922E Birds

  • 观察到 \(w\) 极大,正常的背包会 \(MLE\) 。

  • 设 \(f_{i,j}\) 表示到第 \(i\) 棵树时一共召唤了 \(j\) 只小鸟时剩余的最大魔力值,状态转移方程为 \(f_{i,j}=\min(\max\limits_{k=0}^{\min(j,c_{i})} \{ f_{i-1,j-k}-cost_{i} \times k+x \},w+b \times j)\) ,边界为 \(f_{0,0}=w\) 。

  • 最终,有 \(\max\limits_{i=0}^{\sum\limits_{j=1}^{n}c_{i}} \{ [f_{n,i} \ge 0] \times i \}\) 即为所求。

    点击查看代码
    ll c[10010],sum[10010],cost[10010],f[1010][10010];
    int main()
    {
        ll n,w,b,x,ans=0,i,j,k;
        cin>>n>>w>>b>>x;
        for(i=1;i<=n;i++)
        {
            cin>>c[i];
            sum[i]=sum[i-1]+c[i];
        }
        for(i=1;i<=n;i++)
        {
            cin>>cost[i];
        }
        memset(f,-0x3f,sizeof(f));
        f[0][0]=w;
        for(i=1;i<=n;i++)
        {
            for(j=0;j<=sum[i];j++)
            {
                for(k=0;k<=min(j,c[i]);k++)
                {
                    if(f[i-1][j-k]-cost[i]*k>=0)
                    {
                        f[i][j]=max(f[i][j],f[i-1][j-k]-cost[i]*k+x);
                    }
                }
                f[i][j]=min(f[i][j],w+b*j);
            }
        }
        for(i=sum[n];i>=0;i--)
        {
            if(f[n][i]>=0)
            {
                ans=i;
                break;
            }
        }
        cout<<ans<<endl;
        return 0;
    }  	  			 	       			 	 	
    

\(C\) CF285E Positions in Permutations

\(D\) CF1168D Anagram Paths

\(E\) CF573D Bear and Cavalry

\(F\) CF1392H ZS Shuffles Cards

\(G\) CF838C Future Failure

\(H\) CF536D Tavas in Kansas

\(I\) CF1628D1 Game on Sum (Easy Version)

  • 设 \(x_{i}\) 表示第 \(i\) 轮时 Alice 选择的数。

  • 设 \(f_{i,j}\) 表示已经进行了 \(i\) 轮,且使用了 \(j\) 次加法的最大得分,状态转移方程为 \(f_{i,j}=\frac{f_{i-1,j}+f_{i-1,j-1}}{2}\) ,边界为 \(\begin{cases} f_{i,0 \sim \infty}=0 & i=0 \\ f_{i,0}=0, f_{i,i}=i \times k & i \ne 0 \end{cases}\) 。

    • 由于 Bob 想让结果尽可能小,所以有 \(f_{i,j}= \min(f_{i-1,j}-x_{i},f_{i-1,j-1}+x_{i})\) 。
    • 由于 Alice 想让结果尽可能大,所以会让 \(\min(f_{i-1,j}-x_{i},f_{i-1,j-1}+x_{i})\) 取到最大值,即 \(f_{i-1,j}-x_{i}=f_{i-1,j-1}+x_{i}\) 时,解得 \(x_{i}= \frac{f_{i-1,j}-f_{i-1,j-1}}{2}\) ,代入原式有 \(f_{i,j}=\frac{f_{i-1,j}+f_{i-1,j-1}}{2}\) 。
  • 由于 Bob 想让结果尽可能小,所以至多使用 \(m\) 次加法,故最终 \(f_{n,m}\) 即为所求。

  • 另外,由于求解 \(f_{n,m}\) 的过程中只有加法和 \(\times \frac{1}{2}\) 运算,故可以将 \(k\) 缩小至 \(1\) 进行预处理 \(f_{n,m}\) ,询问时再扩大到 \(k\) (即 \(f_{n,m} \times k\) )即可。

    点击查看代码
    const ll p=1000000007;
    ll f[2010][2010];
    ll qpow(ll a,ll b,ll p)
    {
        ll ans=1;
        while(b>0)
        {
            if(b&1)
            {
                ans=ans*a%p;
            }
            b>>=1;
            a=a*a%p;
        }
        return ans;
    }
    int main()
    {
        ll t,n,m,k,i,j;
        cin>>t;
        for(i=1;i<=2000;i++)
        {
            f[i][0]=0;
            f[i][i]=i;
            for(j=1;j<=i-1;j++)
            {
                f[i][j]=((f[i-1][j]+f[i-1][j-1])%p)*qpow(2,p-2,p)%p;
            }
        }
        for(i=1;i<=t;i++)
        {
            cin>>n>>m>>k;
            cout<<f[n][m]*k%p<<endl;
        }
        return 0;
    }
    

标签:专题,min,ll,times,cost,ans,动态,规划,sum
From: https://www.cnblogs.com/The-Shadow-Dragon/p/18083512

相关文章

  • 2.图论专题
    图论专题\(A\)CF464ETheClassicProblem\(B\)CF103EBuyingSets\(C\)CF1163FIndecisiveTaxiFee\(D\)CF708DIncorrectFlow\(E\)CF871ERestoretheTree\(F\)CF1779EAnya'sSimultaneousExhibition\(G\)CF521ECyclingCity\(H\)CF......
  • 1.字符串专题
    字符串专题\(A\)CF1037HSecurity\(B\)CF1073GYetAnotherLCPProblem\(C\)CF906EReverses\(D\)CF666EForensicExamination\(E\)P4199万径人踪灭\(F\)CF1535FStringDistance\(G\)CF1400Fx-primeSubstrings\(H\)CF955DScissors\(I\)CF153......
  • 《产品路标规划与路标管理实践》课程大纲
    【课程背景】产品路标(Roadmap)是特定产品和解决方案领域的中长期发展方向和节奏的规划,是公司在这一领域产品和解决方案策略的体现。产品发展的路标应聚焦客户需求,从商业视角进行产品规划是路标开发的核心,是产品规划能否成功的关键。产品路标代表了公司在特定产品和解决方案领......
  • 【专题】2024年中国物流地产市场趋势及展望报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35388原文出处:拓端数据部落公众号2023年,中国物流地产市场在压力之下呈现出波动的复苏态势,市场需求展现出结构性的变化特点。展望未来,物流地产市场将逐渐走向恢复,但不同区域市场之间的表现可能会更加分化。经济的新业态和新动能将为物流地产市场带......
  • 系统技术规划的几点概要思路
    每年年底或年初都会有各种总结规划,业务部门有业务的规划,研发部门有研发的技术规划,下面分享一下对系统技术规划的几点思路。研发技术规划重点对所负责系统的技术架构升级、技术债问题以及运维问题进行梳理并根据梳理的问题制定匹配的方案,据此方案提前进行技术储备和资源预留。 ......
  • 电阻专题
    定义:阻碍电子移动的因素大小。导体对电流的阻碍作用R=X*l/AX:电阻率L:材料长度A:横截面积电阻按照阻值可以分为固定电阻和可变电阻两种固定电阻--线绕电阻:电阻丝缠绕的电阻固定电阻--碳质电阻,几十年前的电阻,目前几乎不使用了,了解即可碳树脂混合物具有导电性,可以是石墨烯。......
  • 使用甘特图实现高效时间规划
    甘特图虽然看似简单,却蕴含着规划时间的奥秘。它将复杂的工序分解成逻辑严密的任务链条,每个短小的条形图块都清晰地道出一个任务的起始、持续和终止。就像指挥家挥舞手中的棒,每个动作都精确拍着节奏,确保各个乐手分工合作、行云流水。 制作精良的甘特图需要深入理解项目的血......
  • 插件下载(成为开发者编写自己的动态DLL插件/请下载以下dll插件移动到[xl0shell-aptv2目
    DLL动态库插件下载地址支持平台上传时间功能介绍多IP域名穷举插件.dll点击下载xl0shell-aptv2工具库2024/03/1618:54:22可进行多IP域名直接爆出的插件工具,可进行IP下域名扫描等操作生成TXT文本到桌面webshell批量管理工具插件.dll点击下载xl0shell......
  • FPGA入门笔记008——数码管动态扫描设计与验证
    #FPGA入门笔记008——数码管动态扫描设计与验证1、数码管动态扫描原理​ 8段数码管的结构图如图1所示:图1——8段数码管结构图(a为共阴极,b为共阳极)​ 对于共阴数码管需要给对应段以高电平才会使其点亮,而对于共阳极数码管则需要给低电平才会点亮。AC620上板载的是共阳极数......
  • 【无人机路径规划】基于IRM和RRTstar进行无人机路径规划(Matlab代码实现)
    ......