zoukankan      html  css  js  c++  java
  • 小水王

    题目要求:

          有3个发帖很多的ID,他们的 数目都超过了 总数目N的1/4。你能从 ID列表中快速找出他们的ID。

    设计思路:

          综合前一个超级水王综合来看,它们的共同之处就是水王帖子数与总数的关系,从这一关系入手,就有希望找到较为简单的算法。

          上一次的一个好做,这一次的三次同样寻找过程中不变还是设置计数并与0做比较。

          较为难做的是设初值的情况:我的办法就是先设一个水王,剩下的两个在按数组顺序的情况下最先出现与已知水王ID不同设为剩下的水王。

    具体实现:

    #include<iostream>
    #include<string>
    #define M 20
    using namespace std;
    
    void main()
    {
        int n, i, count[3] = {1,0,0};
        string ID[M], water[3];
        cout << "输入帖子总数:" << endl;
        cin >> n;
    
        cout << "按顺序依次输入ID:" << endl;
        for (i = 0; i < n; i++)
        {
            cin >> ID[i];
        }
    
        cout << "帖子表为:" << endl;
        cout << "序号" << '	' << "ID" << endl;
        for (i = 0; i < n; i++)
        {
            cout << i << '	' << ID[i] << endl;
        }
    
        //count[3] = { 1,0,0 };
        water[0] = ID[0];
        for (i = 0; i < n; i++)
        {
            if (count[1] == 0 && ID[i] != water[0] && ID[i] != water[2] )
            {
                count[1]++;
                water[1] = ID[i];
            }
            else if (count[2] == 0 && ID[i] != water[1] && ID[i] != water[0])
            {
                count[2]++;
                water[2] = ID[i];
            }
            else if (ID[i] == water[0])
                count[0]++;
            else if (ID[i] == water[1])
                count[1]++;
            else if (ID[i] == water[2])
                count[2]++;
            else if (ID[i] != water[0] && ID[i] != water[1] && ID[i] != water[2])
            {
                count[0]--;
                if (count[0] < 0) water[0] = ID[i];
                count[1]--;
                if (count[1] < 0) water[1] = ID[i];
                count[2]--;
                if (count[2] < 0) water[2] = ID[i];
            }            
        }
        cout << "三个小水王分别对应的ID为:" << endl;
        cout << water[0] << "" << water[1] << "" << water[2] << endl;
        
    }

    实验结果:

  • 相关阅读:
    Building a flexiable renderer
    Indirect Illumination in mental ray
    我的心情
    Cellular Automata
    Subsurface Scattering in mental ray
    Shader Types in mental ray
    BSP Traversal
    我的渲染器终于达到了MR的速度
    How to handle displacement and motion blur
    说明
  • 原文地址:https://www.cnblogs.com/gaara-zhang/p/5579226.html
Copyright © 2011-2022 走看看