zoukankan      html  css  js  c++  java
  • 网易互联网2015 在线笔试(2)

    题目

    题目大意叙述如下:

    现有 AB 两队进行篮球比赛,位置 d 为三分线,在三分线外进球则得 3 分,三分线内进球则得 2 分;

    A 队整场进球 n 个,位置分别为 a1,a2,...an

    B 队整场进球 m 个,位置分别为 b1,b2,...bm

    主人公小明有权设立三分线位置,他想让 A 队尽可能多的得分,以拉大 AB 两队的得分差距。问将 d 设置为多少可以使得 Score(A)Score(B) 分差最大?

    分析

    此题要求 Score(A)Score(B) 的最大值,就要保证 A 队得分尽量高,也就是说要使得其三分球的数目尽可能的多。现在以 A 队投篮的位置为基准,将三分线设立为其从小到大的逐个位置,求分差,找到最大分差值,则该位置就是三分线设立点。

    程序实现

    #include <iostream>
    #include <cstdlib>
    #include <vector>
    #include <algorithm>
    using namespace std;
    int getCount(vector<int> &Bd, int m, int d)
    {
        int count = 0;
        for (int i = 0; i < m; i++)
        {
            if (Bd[i] < d)
                count++;
        }
        return count;
    }
    
    int maxScore(vector<int> &Ad, int n, vector<int> &Bd, int m)
    {
    
        //将AB两队的,投篮点排序
        sort(Ad.begin(), Ad.end());
        sort(Bd.begin(), Bd.end());
        int max = 0 , dis = 0;
        for (int i = 0; i < n; i++)
        {
            //将三分点设置为当前
            int d = Ad[i];
            //求A队得分
            int scoreA = 3 * (n - i) + 2 * i;
    
            //求B队得分
            int num = getCount(Bd, m, d);
            int scoreB = 2 * num + 3 * (m - num);
    
            //求临时分差
            int tmp = scoreA - scoreB;
            if (tmp > max)
            {
                max = tmp;
                dis = d;
            }//if
        }
        return max;
    }
    
    int main()
    {
        int n, m,tmp;
        vector<int> Ad, Bd;
    
        cin >> n;
        for (int i = 0; i < n; i++)
        {
            cin >> tmp;
            Ad.push_back(tmp);
        }
        cin >> m;
        for (int i = 0; i < m; i++)
        {
            cin >> tmp;
            Bd.push_back(tmp);
        }
    
        cout << maxScore(Ad, n, Bd, m) << endl;
        system("pause");
        return 0;
    }
  • 相关阅读:
    大数据和云计算
    关于移动开发的一些讨论(在有些场合,移动就是噱头,胡乱鼓吹是不负责任的)
    软件开发设计中的两个误区
    【转】从底层了解ASP.NET体系结构
    DotNet命名规范参考(转)
    PAD会取代PC吗
    转:关于http server
    AOP 面向方面的编程 Aspect Oriented Programing --第一次听说呢,汗!
    关于字符集(讲的比较清楚的一片字符集科普文章)
    .NET vs JAVA
  • 原文地址:https://www.cnblogs.com/shine-yr/p/5214855.html
Copyright © 2011-2022 走看看