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

    一、题目

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

    二、设计思路

      参考原来问题的解法,如果每次删除4个不同的ID(不管是否超过总数1/4的ID),那么,剩下的ID列表中,原先发帖比例大于1/4的ID所占比例仍然大于1/4。可以通过不断重复这个过程,把ID总数降低,从而得到问题的答案。具体方法:用shuiwang[3]记录三个候选ID,用key[3]记录它们的累积次数,然后遍历整个ID列表,每处理一个ID,若与shuiwang[i]中的某一个相同,则key[i]++,若与三个都不同,则说明找到了四个互不相同的ID,将三个key[i]--,也就相当于“删除了四个不同ID”,若某一个key[i]==0,则更新之。

    三、

    #include<iostream.h>
    #include<String.h>
    void find(int ID[],int N)
    {
            int i;
            int key[3];
            int shuiwang[3];
            key[0]=key[1]=key[2]=0;
            shuiwang[0]=shuiwang[1]=shuiwang[2]=0;
            for(i = 0; i < N; i++)
            {
                if(ID[i]==shuiwang[0])
                {
                     key[0]++;
                }
                else if(ID[i]==shuiwang[1])
                {
                     key[1]++;
                }
                else if(ID[i]==shuiwang[2])
                {
                     key[2]++;
                }
                else if(key[0]==0)
                {
                     key[0]=1;
                     shuiwang[0]=ID[i];
                }
                else if(key[1]==0)
                {
                     key[1]=1;
                     shuiwang[1]=ID[i];
                }
                else if(key[2]==0)
                {
                     key[2]=1;
                     shuiwang[2]=ID[i];
                }
                else
                {
                     key[0]--;
                     key[1]--;
                     key[2]--;
                 }
            }
            for(i=0;i<3;i++)
            {
                cout<<"水王"<<i+1<<"的ID是"<<shuiwang[i]<<endl;
            }
    }
    int main()
    {
        int ID[]={1,2,1,1,2,3,2,3,3,4,4};
        find(ID,11);
    }
    

    四、截图

    五、总结

       本次实验收获颇丰,思想和上一水王一样,消去的方法还是很好的。

  • 相关阅读:
    VC 常见问题百问
    python windows 环境变量
    Check server headers and verify HTTP Status Codes
    Where are the AES 256bit cipher suites? Please someone help
    outlook 如何预订会议和会议室
    安装Axis2的eclipse插件后,未出现界面
    windows 环境变量
    python 时间日期处理汇集
    openldap学习笔记(使用openldap2.3.32)
    set p4 environment in windows
  • 原文地址:https://www.cnblogs.com/wang321/p/4583531.html
Copyright © 2011-2022 走看看