zoukankan      html  css  js  c++  java
  • noip模拟赛 隔壁

    分析:体积最大的比较好处理,对于第(i,j)格的高度取min(a[i],b[j])就好了,保证让每个格子的高度最大.对于最小的情况,只要让第i列上有一个格子高度为a[i],其它全是0,第j行有一个高度为b[j],其它全是0就好了.如果a,b中有相同的元素,那么它们可以共用一个格子,因为最后每个高度都要取到,还要减去共用格子的高度,所以答案为Σa[i] + Σb[j] - Σ共用格子的高度*个数.

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    int n, m, sum, a[1010], b[1010], ans, cnt, tot[1010];
    int main()
    {
        scanf("%d%d", &n, &m);
        for (int i = 1; i <= n; i++)
        {
            scanf("%d", &a[i]);
            sum += a[i];
        }
        for (int i = 1; i <= m; i++)
        {
            scanf("%d", &b[i]);
            sum += b[i];
        }
        sort(a + 1, a + 1 + n); 
        sort(b + 1, b + 1 + m); 
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= m; j++)
                ans += min(a[i], b[j]);
        for (int i = 1; i <= n; i++)
            tot[a[i]]++;
        cnt = unique(a + 1, a + 1 + n) - a - 1;
        for (int i = 1; i <= cnt; i++)
        {
            int tott = 0;
            for (int j = 1; j <= m; j++)
                if (b[j] == a[i])
                    tott++;
            sum -= min(tott, tot[a[i]]) * a[i];
        }
        printf("%d %d
    ", sum, ans);
    
        return 0;
    }
  • 相关阅读:
    python之字典dict
    python之 tuple元组
    python之列表list
    数字图像处理
    深度神经网络优化
    神经网络的前向后向及更新
    0220 kd树(鸢尾花分类)
    024 查看数据库的编码格式
    208 MySQL性能分析之Explain
    207 MySQL索引的数据结构B+树介绍
  • 原文地址:https://www.cnblogs.com/zbtrs/p/7722014.html
Copyright © 2011-2022 走看看