首页 > 其他分享 >D. Smithing Skill

D. Smithing Skill

时间:2024-07-06 14:31:08浏览次数:15  
标签:jian Smithing 1000006 ll 1000000 金属 cost Skill

原题链接

题解

当我剩下 \(k\) 个金属时,我肯定选 \(a_i \leq k\) 并且 \(a_i-b_i\) 最小的那个

此题还用了分治法,由于金属数量最高可达 \(1e9\) 所以当金属数量大于 \(1e6\) 的时候肯定用 \(cost[1e6]\)

code

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll a[1000006],b[1000006],dp[1000006]={0},cost[1000006]={0};//cost代表剩下cost个金属时,烧融一次最少要消耗几个金属
int main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    memset(cost,0x3f,sizeof cost);
    ll n,m;
    cin>>n>>m;

    for(ll i=1;i<=n;i++) cin>>a[i];
    for(ll i=1;i<=n;i++) cin>>b[i];

    for(ll i=1;i<=n;i++)
    {
        cost[a[i]]=min(cost[a[i]],a[i]-b[i]);
    }

    for(ll i=1;i<=1e6;i++)
    {
        cost[i]=min(cost[i],cost[i-1]);
    }

    for(ll i=1;i<=1e6;i++)
    {
        if(cost[i]<=i) dp[i]=dp[i-cost[i]]+1;
        else dp[i]=dp[i-1];
    }

    ll ans=0;
    while(m--)
    {
        ll x;
        cin>>x;
        if(x>=1000000)
        {
            ll tem=x-1000000,jian=tem/cost[1000000]+1LL;
            ans+=jian;
            x-=cost[1000000]*jian;
        }
        ans+=dp[x];
    }
    cout<<ans*2LL;
    return 0;
}


标签:jian,Smithing,1000006,ll,1000000,金属,cost,Skill
From: https://www.cnblogs.com/pure4knowledge/p/18287222

相关文章

  • ENGL642 Research Skills Question
    ENGL642 ResearchSkillsAssignmentQuestionSemesterTwo2023-2024There is one assessed assignment for the module ENGL642 Research Skills. The assignment requiresyouto produce a research proposal (see section‘the research proposal’......
  • 游戏排名算法:Elo、Glicko、TrueSkill
    EloratingsystemElo等级分制度(英语:Eloratingsystem)是指由匈牙利裔美国物理学家ArpadElo创建的一个衡量各类对弈活动水平的评价方法,是当今对弈水平评估公认的权威标准。两个选手(player)在排名系统的不同,可以用来预测比赛结果。两个具有相同排名(rating)的选手相互竞争时,不管哪......
  • 【VipSkill 打造游戏全领域“产学研“生态体系】
    VipSkill打造游戏全领域"产学研"生态体系VipSkill(上海育界数码科技有限公司),是一家垂直于游戏领域,致力于构建游戏行业一站式"产学研"平台的互联网公司,专注于游戏行业职业教育。自成立以来,VipSkill一直致力于成为游戏行业的"黄埔军校",通过高质量的教育服务,培养出能......
  • Unity类银河恶魔城学习记录10-14 p102 Applying damage to skills and clean up源代码
     Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考此代码仅为较上一P有所改变的代码【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibiliEntity.csusingSystem.Collections;usingSystem.Collections.Generic;usingUnit......
  • [ Skill ] equal, eq, eqv, member, memq, memv
    https://www.cnblogs.com/yeungchie/equal等效运算法==equal(11);=>tequal(11.0);=>teq直接比较内存地址,因此效率比equal高不建议用于比较字符串、数字、链表eq(11);=>teq(11.0);=>nileq("ab""ab");=>teq("a&quo......
  • Sparse Table Advanced Skills
    Storeatupleof(valueofmaximum,indexofmaximum,valueofthesecondmaximum).Tomergetwosegments,wecompareiftheindicesofthemaximumsarethesame.Theycanpossiblybethesamebecauseweoftenqueryintersectingsegmentsinthesparsetab......
  • EDA365 Skill找不到Cadence安装路径的原因与解决办法
    软件版本Cadence17.4参考来源:https://blog.csdn.net/weixin_42837669/article/details/119832994EDA365Skill安装,无法检测到Cadence安装路径,请确认Cadence软件是否已经安装.以下未尝试 ......
  • The importance of learning basic skills
    参考范文1TheImportanceofReadingLiteratureLiteratureisacknowledgedasthemostpreciousproductofhumancivilizationandwisdom,especiallybyourteachers.Sotheyalwaysasktheirstudentstoreadasmanyasliteraryworks.Justasthedrawi......
  • 2023-09-10:用go语言编写。作为项目经理,你规划了一份需求的技能清单 req_skills, 并打算
    2023-09-10:用go语言编写。作为项目经理,你规划了一份需求的技能清单req_skills,并打算从备选人员名单people中选出些人组成一个「必要团队」(编号为i的备选人员people[i]含有一份该备选人员掌握的技能列表)。所谓「必要团队」,就是在这个团队中,对于所需求的技能列表req_skills......
  • 2023-09-10:用go语言编写。作为项目经理,你规划了一份需求的技能清单 req_skills, 并打算
    2023-09-10:用go语言编写。作为项目经理,你规划了一份需求的技能清单req_skills,并打算从备选人员名单people中选出些人组成一个「必要团队」(编号为i的备选人员people[i]含有一份该备选人员掌握的技能列表)。所谓「必要团队」,就是在这个团队中,对于所需求的技能列表req_skills......