zoukankan      html  css  js  c++  java
  • 济南学习 Day1 T3 am

    凝视
    【问题描述】
    背包是个好东西,希望我也有。
    给你一个二维的背包,它的体积是N*M。现在你有一些大小为1× 2和1×
    3的物品,每个物品有自己的价值。你希望往背包里面装一些物品,使得它们的
    价值和最大,问最大的价值和是多少。
    【输入格式】
    第一行一个整数T代表该测试点的数据组数。
    对于每组数据,第一行有四个整数N,M,n1,n2其中n1 ,n2 分别代表大小为
    1× 2和大小为1 × 3的物品个数。
    1 × 2 接下来一行有? 2 个数代表每个1 × 3物品的价值。
    【输出格式】
    对于每组询问,输出能够达到的价值最大值。
    【样例输入】
    1
    2 3 2 2
    1 2
    1 2
    【样例输出】
    4
    【样例解释】
    庙里有座山。
    【数据规模与约定】
    对于20%的数据,N,M<=10,n1,n2<=100
    70%的数据,N,M ≤ 100,n1,n2 ≤ 2000。
    对于100%的数据,1 ≤ T ≤ 10,1 ≤ N,M ≤ 500,0 ≤ n1,n2 ≤ 10000。

     1 #include<cstdio>
     2 #include<cstdlib>
     3 #include<cstring>
     4 #include<algorithm>
     5 using namespace std;
     6 const int maxn=10010;
     7 int n,m,n1,n2,y[maxn],z[maxn],sum[maxn];
     8 bool cmp(int a,int b)
     9 {
    10     return a>b;
    11 }
    12 int main()
    13 {
    14     freopen("eyesight.in","r",stdin);
    15     freopen("eyesight.out","w",stdout);
    16 
    17     int t;
    18     scanf("%d",&t);
    19     while(t--)
    20     {
    21         scanf("%d%d%d%d",&n,&m,&n1,&n2);
    22         for (int a=1;a<=n1;a++)
    23             scanf("%d",&y[a]);
    24         for (int a=1;a<=n2;a++)
    25             scanf("%d",&z[a]);
    26         sort(y+1,y+n1+1,cmp);
    27         sort(z+1,z+n2+1,cmp);
    28         for (int a=1;a<=n1;a++)
    29             y[a]+=y[a-1];
    30         for (int a=1;a<=n2;a++)
    31             z[a]+=z[a-1];
    32         int delta;
    33         if (n%3==2 && m%3==2 && (n==2 || m==2)) delta=4;
    34         else delta=n*m%3;
    35         int ans=0,limit=min(n2,(n*m-delta)/3);
    36         for (int a=0;a<=limit;a++)
    37             ans=max(ans,z[a]+y[min(n1,(n*m-a*3)>>1)]);
    38         printf("%d
    ",ans);
    39     }
    40 
    41     return 0;
    42 }
  • 相关阅读:
    线性回归的从零开始实现
    比赛总结
    计数学习笔记
    DP计数问题
    多项式学习笔记
    数据结构学习笔记
    子集运算学习笔记
    待学习
    ICPC2018焦作 题解
    ICPC2018焦作 H题 Can You Solve the Harder Problem?
  • 原文地址:https://www.cnblogs.com/suishiguang/p/6029908.html
Copyright © 2011-2022 走看看