蓝桥杯真题练习

这篇具有很好参考价值的文章主要介绍了蓝桥杯真题练习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

小蓝在玩一个寻宝游戏, 游戏在一条笔直的道路上进行, 道路被分成了 nn 个方格, 依次编号 1 至 nn, 每个方格上都有一个宝物, 宝物的分值是一个整数 (包括正数、负数和零), 当进入一个方格时即获得方格中宝物的分值。小蓝可 以获得的总分值是他从方格中获得的分值之和。

小蓝开始时站在方格 1 上并获得了方格 1 上宝物的分值, 他要经过若干步 到达方格 nn。

当小蓝站在方格 pp 上时, 他可以选择跳到 p+1p+1 到 p+D(n-p)p+D(n−p) 这些方格 中的一个, 其中 D(1)=1, D(x)(x>1)D(1)=1,D(x)(x>1) 定义为 xx 的最小质因数。

给定每个方格中宝物的分值, 请问小蓝能获得的最大总分值是多少。

输入格式

输入的第一行包含一个正整数 nn 。

第二行包含 nn 个整数, 依次表示每个方格中宝物的分值。

输出格式

输出一行包含一个整数, 表示答案。

5

1 -2 -1 3 5

输出

8

本题一开始采用的动态规划,dp[i]表示在i位置的获得的最大价值。这是本人一开始的动态规划但是时间超时,只能换种方法。

        for(int i=2;i<=n;i++){
            dp[i]=dp[i-1]+nums[i];
            for(int j=1;j<i;j++){
                int x=n-j;
                int m = m(x);
                if(m+j>=i)
                    dp[i]=Math.max(dp[i],dp[j]+nums[i]);
            }
        }

真题代码

 public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        int nums[]=new int[n+1];
        for(int i=1;i<=n;i++){
            nums[i]=scanner.nextInt();
        }
        int[] dp=new int[nums.length];
        Arrays.fill(dp,Integer.MIN_VALUE);
        dp[1]=nums[1];

        for(int i=1;i<=n;i++){
            int m=m(n-i);
            for(int j=i+1;j<=i+m;j++){
                dp[j]=Math.max(dp[j],dp[i]+nums[j] );
            }
        }
        System.out.println(dp[n]);


    }
    public static int m(int x){
        for(int i=2;i<=Math.sqrt(x);i++){
            if(x%i==0)
                return i;
        }
        return x;
    }

话说大诗人李白, 一生好饮。幸好他从不开车。

一天, 他提着酒显, 从家里出来, 酒显中有酒 2 斗。他边走边唱:

无事街上走,提显去打酒。 逢店加一倍, 遇花喝一斗。

这一路上, 他一共遇到店 NN 次, 遇到花 MM 次。已知最后一次遇到的是花, 他正好把酒喝光了。

请你计算李白这一路遇到店和花的顺序, 有多少种不同的可能?

注意: 显里没酒 ( 0 斗) 时遇店是合法的, 加倍后还是没酒; 但是没酒时遇 花是不合法的。

输入格式

第一行包含两个整数 NN 和 MM.

输出格式

输出一个整数表示答案。由于答案可能很大,输出模 1000000007 的结果.

样例输入

5 10

样例输出

14

摘自蓝桥杯题解代码文章来源地址https://www.toymoban.com/news/detail-407436.html

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
//dp[n][m][k]表示遇见n店,m花,还剩k酒。
//因为题目要求最后一次必须是花,因此倒数第二次肯定剩余1数量的酒。
//所以答案ans = dp[n][m-1][1]。
//当剩余偶数酒的时候,有可能你上次遇见花也遇见店。
//当剩余奇数酒的时候,你上次必遇见店。
public class Main {
    public static final int mod = (int)1e9+7;
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n=scan.nextInt();
        int m=scan.nextInt();
        int[][][] dp = new int[n+1][m+1][m+5];
        dp[0][0][2]=1;
        dp[0][1][1]=1;
        dp[0][2][0]=1;
        for(int i=1;i<=n;i++){
          for(int j=0;j<=m;j++){
            for(int k=0;k<=m;k++){
             if(i>0&&k>0&&k%2==0)
             dp[i][j][k]+=dp[i-1][j][k/2];
             if(j>0)
             dp[i][j][k]+=dp[i][j-1][k+1];
              dp[i][j][k]%=mod;
            }
          }
        }
        System.out.println(dp[n][m][0]%mod);
        scan.close();
    }
}

到了这里,关于蓝桥杯真题练习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 题目 3158: 蓝桥杯2023年第十四届省赛真题-三国游戏(贪心)

    小蓝正在玩一款游戏。游戏中魏蜀吴三个国家各自拥有一定数量的士兵X, Y, Z (一开始可以认为都为 0 )。游戏有 n 个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第 i 个事件发生时会分别让 X, Y, Z 增加Ai , Bi ,Ci 。 当游戏结束时 (所有事件的发生与否已经确

    2024年02月01日
    浏览(59)
  • web蓝桥杯真题--11、蓝桥知识网

    蓝桥为了帮助大家学习,开发了一个知识汇总网站,现在想设计一个简单美观的首页。本题请根据要求来完成一个首页布局。 开始答题前,需要先打开本题的项目代码文件夹,目录结构如下: 其中: css/style.css  是样式文件。 data.txt  是页面数据文件。 index.html  是主页面。

    2024年01月21日
    浏览(35)
  • 【蓝桥杯选拔赛真题11】C++求平方 青少年组蓝桥杯C++选拔赛真题 STEMA比赛真题解析

    目录 C/C++求平方 一、题目要求 1、编程实现 2、输入输出

    2024年02月05日
    浏览(49)
  • 【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题,真题分析与代码讲解

    🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都在这儿哦,欢迎大家前往订阅本专题,获取更多详细信息哦🎏 🎏【蓝桥杯嵌入式】蓝桥杯第十届省赛真题 🎏【蓝桥杯嵌入式】蓝桥杯第十三届省赛程序真题 🪔本系列专栏 -  

    2023年04月15日
    浏览(92)
  • 蓝桥杯:国二选手经验贴 附蓝桥杯历年真题

    🤩 那么恭喜你呀 ~ 看到一篇宝藏参赛指南 🤩 楼主将结合自己的参赛经历 手把手教你拿到省一进国赛嗷!!!(文章结尾有历年真题及VIP试题链接 建议收藏 ~✌️) 楼主是参加了2022年的蓝桥杯算法竞赛Python大学A组 先浅浅晒一下证书: 目录  ⭐️引言⭐️ ⭐️本文适合

    2023年04月09日
    浏览(60)
  • 【蓝桥杯嵌入式】蓝桥杯嵌入式第十四届省赛程序真题,真题分析与代码讲解

     🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都已更新完毕,欢迎大家前往订阅本专题🎏 🎏【蓝桥杯嵌入式】蓝桥杯第十届省赛真题 🎏【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题 🎏【蓝桥杯嵌入式】蓝桥杯第十三届省

    2023年04月15日
    浏览(104)
  • 【蓝桥杯省赛真题18】python阴影图形面积 青少年组蓝桥杯python编程省赛真题解析

    目录 python阴影图形面积 一、题目要求 1、编程实现 2、输入输出

    2023年04月23日
    浏览(44)
  • 蓝桥杯真题:平面分割

     第一次做几何题: 看到了一篇十分好的推导,原文请见: 第十一届蓝桥杯A组省赛平面分割_Alan_Lowe-CSDN博客_蓝桥杯平面分割 也有一个小的公式总结,原文请见: 【蓝桥杯】平面分割_木又可可的博客-CSDN博客_蓝桥平面分割 推导的过程是用递归来看的: 首先只考虑直线,设

    2023年04月08日
    浏览(24)
  • 蓝桥杯真题05

    给定一个数组 A 和一些查询 Li,Ri 求数组中第 Li 至第 Ri个元素之和。 小蓝觉得这个问题很无聊, 于是他想重新排列一下数组, 使得最终每个查询结果的和尽可能地大。小蓝想知道相比原数组, 所有查询结果的总和最多可以增加多少? 输入第一行包含一个整数 n 。 第二行包含 n 个

    2023年04月09日
    浏览(23)
  • 蓝桥杯真题6

    对于正整数 n, 如果存在正整数 k 使得 n=1+2+3+⋯+k=k(k+1)/2, 则 n 称为三角数。例如, 66066 是一个三角数, 因为 66066=1+2+3+⋯+363 。 如果一个整数从左到右读出所有数位上的数字, 与从右到左读出所有数位 上的数字是一样的, 则称这个数为回文数。例如, 66066 是一个回文数, 8778 也是一

    2023年04月10日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包