无人驾驶帝国

首页
字体:
上 页 目 录 下 章
第一百九十二章 道路游戏(2/2)
i秒时第j个机器人走k次(1<=k<=p)

    f[=max(f[,f[i-k]-pay[st]+sum)

    这里是从当前点倒推

    st是上一个点

    当st=0,st=n

    sum要一遍遍加上钱k秒第st路上的金币数

    每次减去第st条道路(即第st个工厂机器人)的价格

    如果i-k<0

    直接退出k循环,时间不为负

    【代码】

    #include

    #include

    #include

    using namespace std;

    int n,m,p,b[1001],a[1001][1001],f[1001];

    int main

    scanf(“%d%d%d“,&n,&m,&p);

    memset(f,-1000000,sizeof(f)); f[0]=0;

    for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf(“%d“,&a[[j]);

    for(int i=1;i<=n;i++) scanf(“%d“,&b[);

    for(int i=1;i<=m;i++)

    for(int j=1;j<=n;j++)

    int t=j-1;

    if(!t) t=n;

    int ss=a[t][;

    for(int k=1;k<=p;k++)

    if(i-k<0) break;

    f[=max(f[,f[i-k]+ss-b[t]);

    t--;

    if(!t) t=n;

    ss+=a[t][i-k];

    }

    printf(“%d“,f[m]);

    return 0;

    【数据范围】

    对于 40%的数据,2≤n≤40,1≤m≤40。

    对于 90%的数据,2≤n≤200,1≤m≤200。

    对于 100%的数据,2≤n≤1000,1≤m≤1000,1≤p≤m。

    【做法说明】

    题目呢,比较长,信息比较多,注意不要看错题。但是呢还是比较轻易可以看出这是dp题的类型。

    dp[[j]表示时间i在j点的最大收益,pre[j]表示j点的上一个,mx[表示在时间i所有位置的最大收益(因为买机器人是任意位置可买,转移时直接用即可),g[[j]表示状态(i,j)取最优解时走的步数(这个明显是越小越好啦),最后输出max(dp[m][)。

    王老师说:“高中驾驶学科奥赛,要更多地运用到数学与信息学的知识,请大家有机会课外都多补一补这方面的知识。”

    沈笑夫心里一阵咯噔,数学和信息学,要加油啊!

    这时,坐在旁边的一个男生对沈笑夫说:“沈笑夫,我是汽车三班的刘李阳,请多关照!”

    沈笑夫侧目一看,这个男生脸色白净,头发新潮,一脸虔诚地看着自己。

    沈笑夫点点头说:“互相关照!”

    “有你这个大佬罩着,我心里有谱了,呵呵!”刘李阳笑着说。

    ……

    下课后,沈笑夫眼前出现了驾驶学科奥赛系统显示屏:

    学科: l1,288/1000

    体能: l1,97/100

    情绪: l1,89/100

    任务: 0

    奖励:奖励记忆胶囊一粒。请点击“兑奖”键领取奖励。

    学科、奖励栏的背景亮着光,说明这两项有了变化!其他栏目背景灰暗,说明没有变化。

    学科栏从284到288,增加了4个点,是这几天学习驾驶学科知识的收获。

    奖励栏再次出现久违的记忆胶囊!

    沈笑夫有些鸡冻,轻轻点击“兑奖”键,屏幕里立马滚出一粒蓝色的记忆胶囊!

    好!

    记忆胶囊在手,复杂的信息学,也就容易了!

    麻烦的数学,也不会那么麻烦了!

    沈笑夫嘴角露出了开森的笑容!

     =>>(本章未完,请点击下一页继续阅读)
上 页 目 录 下 章