zoukankan      html  css  js  c++  java
  • 车辆问题(贪心)

    链接:https://www.nowcoder.com/acm/contest/112/B

    有n个队伍,每个队伍的人数小于等于5,每辆车最多坐5个人,要求一个队伍的人都在一辆车上,求最少的车数

    输入描述:

    第一行n
    第二行n个数,表示每个队伍的人数

    输出描述:

    输出最少车数
    示例1

    输入

    3
    3 4 5

    输出

    3

    备注:

    n≤1e5
    每个数小于等于5
    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <cstdio>
    #include <vector>
    #include <queue>
    #include <stack>
    #include <cstdlib>
    #include <iomanip>
    #include <cmath>
    #include <cassert>
    #include <ctime>
    #include <map>
    #include <set>
    using namespace std;
    #pragma comment(linker, "/stck:1024000000,1024000000")
    #define lowbit(x) (x&(-x))
    #define max(x,y) (x>=y?x:y)
    #define min(x,y) (x<=y?x:y)
    #define MAX 100000000000000000
    #define MOD 1000000007
    #define pi acos(-1.0)
    #define ei exp(1)
    #define PI 3.1415926535897932384626433832
    #define ios() ios::sync_with_stdio(true)
    #define INF 0x3f3f3f3f
    #define mem(a) ((a,0,sizeof(a)))
    typedef long long ll;
    int n,a[7],x,ans=0;
    void check(int x,int y)
    {
        int pos;
        pos=min((a[x]*x)/(5-y),a[y]);
        ans+=pos;
        a[x]-=pos*((5-y)/x);
        a[y]-=pos;
    }
    int main()
    {
        scanf("%d",&n);
        memset(a,0,sizeof(a));
        for(int i=0;i<n;i++)
        {
            scanf("%d",&x);
            a[x]++;
        }
        ans+=a[5];
        a[5]-=ans;
        check(1,4);
        check(2,3);
        check(2,1);
        check(1,2);
        check(1,3);
        if(a[1] && a[2]) ans++,a[1]--,a[2]--;
        if(a[1] && a[3]) ans++,a[1]--,a[3]--;
        printf("%d
    ",ans+(a[1]/5+(a[1]%5==0?0:1))+(a[2]/2+(a[2]%2==0?0:1))+a[3]+a[4]+a[5]);
        return 0;
    }
  • 相关阅读:
    【LeetCode】048. Rotate Image
    【LeetCode】036. Valid Sudoku
    【LeetCode】060. Permutation Sequence
    【LeetCode】001. Two Sum
    【LeetCode】128. Longest Consecutive Sequence
    【LeetCode】081. Search in Rotated Sorted Array II
    【LeetCode】033. Search in Rotated Sorted Array
    顺时针打印矩阵
    矩形覆盖
    二维数组中的查找
  • 原文地址:https://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/9026731.html
Copyright © 2011-2022 走看看