zoukankan      html  css  js  c++  java
  • 蓝桥杯之入学考试

      
    问题描述:
      辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。
       医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。
       我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”
      如果你是辰辰,你能完成这个任务吗?
    输入格式:
      第一行有两个整数 T(1 <= T <= 1000) 和 M(1 <= M <= 100),用一个空格隔开,T代表总共能够用来采药的时间,M代表山洞里的草药的数目。
       接下来的 M 行每行包括两个在1到100之间(包括1和100)的整数,分别表示采摘某株草药的时间和这株草药的价值。
    输出格式:
      包括一行,这一行只包含一个整数,表示在规定的时间内,可以采到的草药的最大总价值。
    样例输入:
    70 3
    71 100
    69 1
    1 2
    样例输出:
    3
    数据规模和约定:
      对于30%的数据,M <= 10;
      对于全部的数据,M <= 100

    例如:

    #include<stdio.h>
    #include<stdlib.h>
    #include<memory.h>
    int dp(int m,int n);
    int main(void)
    {
        int m,n,Max_Value;
        scanf("%d %d",&m,&n);
        Max_Value = dp(m,n);
        printf("%d",Max_Value);
        return 0;
    } 
    
    int dp(int m,int n)
    {
        int i,j;
        int *time = (int *)malloc((n+1) * sizeof(int));
        int *value = (int *)malloc((n+1) * sizeof(int));
        int *ans = (int *)malloc((m+1) * sizeof(int));
        memset(time,0,(n+1) * sizeof(int));
        memset(value,0,(n+1) * sizeof(int));
        memset(ans,0,(m+1) * sizeof(int));
        for(i = 1; i <= n; i++)
        {
            scanf("%d %d",&time[i],&value[i]);
        }
        for(i = 1; i <= n; i++)
        {
            for(j = m; j >= time[i]; j--)
            {
                if(ans[j - time[i]] + value[i] > ans[j])
                {
                    ans[j] = ans[j - time[i]] + value[i];
                }
            }
        }
        return ans[m];
    }
  • 相关阅读:
    leetcode66 plusOne
    park/unpark 阻塞与唤醒线程
    leetcode55 jumpGame贪心算法
    ACID特性与事务的隔离级别
    PCB ODB++(Gerber)图形绘制实现方法
    PCB 所建不凡 AWS 技术峰会2018 • 深圳站 2018.9.20
    PCB SQL SERVER 位运算应用实例
    PCB SQL SERVER 枚举分割函数(枚举值分解函数)
    PCB SQL SERVER 正则应用实例
    PCB Genesis 外形加内角孔实现方法
  • 原文地址:https://www.cnblogs.com/M-Anonymous/p/10489566.html
Copyright © 2011-2022 走看看