• P1025小飞侠的游园方案


    描述

    经过抽签选择,小智将军第一个进入考场。

    菜虫:(身上散射出华贵(?)的光芒)欢迎你,第一位挑战者!!
    小智:……(走到菜虫身后,关灯)女王陛下,虽然我们国家现在很富裕,但也请您不要浪费电来用这么大功率的灯泡。

    菜虫(汗):啊啊~~爱卿所言甚是~~那么,你的题目是……我们的情报组织探听到敌人的重要将领——小飞侠星期天会邀他的灵儿妹妹到公园去玩。公园 里有很多娱乐项目,可并不是每一项他们都喜欢,所以他们对每一项都进行了“喜欢度”的评分。因为小飞侠也是一个了不起的角色,所以他一定会选择在有限时间 内的最好的方案。现在要你做的就是找出在规定时间内他们选择哪几项不同的活动可以使其“喜欢度”之和达到最大,据此我们就可以知道他会在哪些地方出现,从 而在那里派人看守了。

    小智:(灯泡一亮)每个地方都派人看守不就行了?!
    “当~~~”
    菜虫:(手执八公分直径炒锅,筋)……你是白痴吗?-_-##(都派人去看守的话我们会有多少桌三缺一?!)听好了,输入格式是第一行一个正整数 N(1<=N<=100)表示总共的娱乐项目数;第二行一个正整数表示规定的时间t(0<t<1000);下面有N行,其中第 i+2行有两个正整数fi(0<=fi<=100)和ti(0<ti<=100),分别表示对项目i的“喜欢度”和它所耗费的时 间。输出的时候在第一行输出最大的“喜欢度”之和,下面给你一个样例:

    样例1

    样例输入1[复制]

    3
    5
    1 2
    5 5
    4 3

    样例输出1[复制]

    5

    限制

    各个测试点1s

    01背包问题  动态规划

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<cstring>
     5 #include<algorithm>
     6 #define N 1005
     7 typedef long long ll;
     8 using namespace std;
     9 int main()
    10 {
    11     int n,t;
    12     int a[N],b[N];
    13     int dp[N];
    14     scanf("%d",&n);
    15     scanf("%d",&t);
    16     memset(dp,0,sizeof(dp));
    17     int i,j;
    18     for(i=0;i<n;i++)
    19         scanf("%d%d",&a[i],&b[i]);
    20     for(i=0;i<n;i++)
    21     {
    22         for(j=t;j>=b[i];j--)
    23         {
    24             dp[j]=max(dp[j],dp[j-b[i]]+a[i]);
    25         }
    26     }
    27     printf("%d
    ",dp[t]);
    28 
    29 }
  • 相关阅读:
    Vmware安装Ubuntu ==> 连网成功
    在 ns3.25中添加 plc(电力线载波) 模块
    Ubuntu12.04下安ns3.29及Ubuntu换源方法
    微信支付小程序版
    微信小程序打开外部链接
    linux下安装Mongodb
    延迟执行+异步 之代码分析1
    Vue入门
    实验一
    实验二
  • 原文地址:https://www.cnblogs.com/Aa1039510121/p/5857880.html
Copyright © 2020-2023  润新知