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

    一、题目

    随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?

     

    二、设计思路

    这回的题目与上回很相似,我想能不能依旧使用相消的方法。最后,我发现如果一次消去四项完全不同的ID,最后剩下的必定是三个水王的ID.

     

    三、代码

    #include<iostream.h>

    int main()

    {

        int ID[10]={1,2,2,2,3,3,3,4,4,4};

        int ID_NULL;

        int shui[3];

        int flag[3];

        int i;

        shui[0]=shui[1]=shui[2]=0;

        flag[0]=flag[1]=flag[2]=ID_NULL;

        for(i=0;i<10;i++)

        {

            if(ID[i]==flag[0])

            {

                 shui[0]++;

            }

            else if(ID[i]==flag[1])

            {

                 shui[1]++;

            }

            else if(ID[i]==flag[2])

            {

                 shui[2]++;

            }

            else if(shui[0]==0)

            {

                 shui[0]=1;

                 flag[0]=ID[i];

            }

            else if(shui[1]==0)

            {

                 shui[1]=1;

                 flag[1]=ID[i];

            }

            else if(shui[2]==0)

            {

                 shui[2]=1;

                 flag[2]=ID[i];

            }

            else

            {

                 shui[0]--;

                 shui[1]--;

                 shui[2]--;

             }

        }

        cout<<"水王有:"<<endl;

        cout<<flag[0]<<"  "<<flag[1]<<"  "<<flag[2]<<endl;

        return 0;

    }

    四、截图

     

    五、总结

    这道题如果通过排序,那么1/4,2/4,3/4处即为水王ID,代码简单,但时间复杂度O(n*logn),会加大计算机的运算时间。

    代码优化任重而道远。

  • 相关阅读:
    开发笔记:python与随机数(转)
    如何建立内核级钩子控制操作系统实现程序隐身(转)
    SPOJ 7001. Visible Lattice Points (莫比乌斯反演)
    BZOJ 2301: [HAOI2011]Problem b (莫比乌斯反演)
    HDU 1695 GCD (莫比乌斯反演)
    HDU 4691 Front compression (2013多校9 1006题 后缀数组)
    HDU 4686 Arc of Dream (2013多校9 1001 题,矩阵)
    HDU 1695 GCD (欧拉函数+容斥原理)
    【转】[专题学习][计算几何]
    POJ 1755 Triathlon (半平面交)
  • 原文地址:https://www.cnblogs.com/lsfh/p/4469028.html
Copyright © 2011-2022 走看看