zoukankan      html  css  js  c++  java
  • 地宫取宝----第五届蓝桥杯

    /*
     * 标题:地宫取宝
        X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每一个格子放一件宝贝。每一个宝贝贴着价值标签。
        地宫的入口在左上角,出口在右下角。
        小明被带到地宫的入口,国王要求他仅仅能向右或向下行走。

    走过某个格子时,假设那个格子中的宝贝价值比小明手中随意宝贝价值都大,小明就能够拿起它(当然,也能够不拿)。 当小明走到出口时,假设他手中的宝贝恰好是k件,则这些宝贝就能够送给小明。 请你帮小明算一算,在给定的局面下。他有多少种不同的行动方案能获得这k件宝贝。

    【数据格式】 输入一行3个整数,用空格分开:n m k (1<=n,m<=50, 1<=k<=12) 接下来有 n 行数据,每行有 m 个整数 Ci (0<=Ci<=12)代表这个格子上的宝物的价值 要求输出一个整数,表示正好取k个宝贝的行动方案数。该数字可能非常大,输出它对 1000000007 取模的结果。 比如,输入: 2 2 2 1 2 2 1 程序应该输出: 2 再比如,输入: 2 3 2 1 2 3 2 1 5 程序应该输出: 14 资源约定: 峰值内存消耗 < 256M CPU消耗 < 1000ms 请严格按要求输出。不要画蛇添足地打印相似:“请您输入...” 的多余内容。 全部代码放在同一个源文件里。调试通过后,拷贝提交该源代码。 注意: main函数须要返回0 注意: 仅仅使用ANSI C/ANSI C++ 标准。不要调用依赖于编译环境或操作系统的特殊函数。

    注意: 全部依赖的函数必须明白地在源文件里 #include <xxx>, 不能通过project设置而省略经常使用头文件。 提交时。注意选择所期望的编译器类型。

    */ public class 地宫取宝 { static int m,n,k; static int count=0;//拥有的方案的数量 public static void main(String[] args) { Scanner sc=new Scanner(System.in); n=sc.nextInt(); m=sc.nextInt(); int[][] digong=new int[n][m]; k=sc.nextInt(); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { digong[i][j]=sc.nextInt(); } } dsf(digong,0,0,0,0); print("有"+count+"种行动方案"); long start = System.currentTimeMillis(); long end = System.currentTimeMillis(); print("此程序执行,花费的时间是" + ((end - start) / 1000.0) + "秒."); } //參数分别代表地宫数组当前拥有的宝贝数量have,当前所在的所标i/j,当前的单个宝贝的价值最大值 public static void dsf(int[][] digong,int have,int i,int j,int max){ if(i==n-1&&j==m-1) { //假设走到了最后一格 if(have==k) count++; else if(have==k-1&&max<digong[i][j]) count++; if(count>1000000007) count=count%1000000007; } else{//四种行走方式 if(i<n-1) dsf(digong,have,i+1,j,max);//不拿宝贝向下走 if(j<m-1) dsf(digong,have,i,j+1,max);//不拿宝贝向右走 if(max<digong[i][j]&&i<n-1) { dsf(digong,have+1,i+1,j,digong[i][j]);//拿宝贝向下走 } if(max<digong[i][j]&&j<m-1) { dsf(digong,have+1,i,j+1,digong[i][j]);//拿宝贝向右走 } } } public static void print(Object o) { System.out.println(o.toString()); } }



    输入输出:

    2 3 2
    1 2 3
    2 1 5
    有14种行动方案
    此程序执行,花费的时间是0.0秒.

  • 相关阅读:
    poj 1743 Musical Theme 后缀数组
    poj 1743 Musical Theme 后缀数组
    cf 432D Prefixes and Suffixes kmp
    cf 432D Prefixes and Suffixes kmp
    hdu Data Structure? 线段树
    关于position和anchorPoint之间的关系
    ios POST 信息
    CALayers的代码示例
    CALayers详解
    ios中得sqlite使用基础
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6977938.html
Copyright © 2011-2022 走看看