zoukankan      html  css  js  c++  java
  • 洛谷—— P1926 小书童——刷题大军

    https://www.luogu.org/problem/show?pid=1926#sub

    题目背景

    数学是火,点亮物理的灯;物理是灯,照亮化学的路;化学是路,通向生物的坑;生物是坑,埋葬学理的人。 文言是火,点亮历史宫灯;历史是灯,照亮社会之路;社会是路,通向哲学大坑;哲学是坑,埋葬文科生。——小A

    题目描述

    小A“刷题”十分猖狂,明目张胆地“刷题”。他现在在小书童里发现了n样他喜欢的“题目”,每“题”都有他的需要时间,而老师布置了m项作业,每项作业都有它的需要时间及分值,老师规定k分以上算及格。小A只剩r个单位时间,他想在及格的基础上更多地“刷题”。

    输入输出格式

    输入格式:

    第一行:n m k r。第二行:n个数,代表每“题”他的需要时间。第三行:m个数。表示每项作业它的需要时间。第四行:m个数。代表每项作业它的分值。

    输出格式:

    一个数,代表小A能刷几道题

    输入输出样例

    输入样例#1:
    3 4 20 100
    15 20 50
    10 15 40 40
    5 5 10 15
    输出样例#1:
    2

    说明

    没有不能及格的情况

    Step1 背包DP 求出得到k分时的最小代价

    Step2 贪心刷题

     1 #include <algorithm>
     2 #include <cstdio>
     3 
     4 using namespace std;
     5 
     6 const int N(1000+15);
     7 int n,m,k,r;
     8 int cnt,tim,sum;
     9 int wval[N],f[N];
    10 int home[N],work[N];
    11 
    12 int main()
    13 {
    14     scanf("%d%d%d%d",&n,&m,&k,&r);
    15     for(int i=1;i<=n;i++) scanf("%d",home+i);
    16     for(int i=1;i<=m;i++) scanf("%d",work+i),sum+=work[i];
    17     for(int i=1;i<=m;i++) scanf("%d",wval+i);
    18     for(int i=1;i<=m;i++)
    19       for(int j=sum;j>=work[i];j--)
    20         f[j]=max(f[j],f[j-work[i]]+wval[i]);
    21     sort(f+1,f+sum+1);
    22     for(int i=1;i<=sum;i++)
    23         if(f[i]>=k)
    24         {
    25             tim=i;
    26             break;
    27         }
    28     sort(home+1,home+n+1);
    29     for(int i=1;i<=n;i++)
    30     {
    31         if(tim+home[i]<=r)
    32         {
    33             cnt++;
    34             tim+=home[i];
    35         }            
    36         else break;
    37     }
    38     printf("%d",cnt);
    39     return 0;
    40 }
    ——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。
  • 相关阅读:
    洛谷P5661 公交换乘(二分)
    洛谷P4047 [JSOI2010]部落划分(最小生成树)
    洛谷P2872 [USACO07DEC]Building Roads S(最小生成树)
    卸载重装VirtualBox回滚报错
    POJ1151 Atlantis(扫描线+线段树+离散化)
    QT入门-信号槽拓展
    Vue模板语法与常用指令总结
    Vue 生命周期
    querySelector和getElementById方法的区别
    ES6 Class(类)的继承与常用方法
  • 原文地址:https://www.cnblogs.com/Shy-key/p/6945018.html
Copyright © 2011-2022 走看看