zoukankan      html  css  js  c++  java
  • 找水王问题续

    一、题目

    三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。

    如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

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

    二、设计思想

        延续上一篇找发帖数超过一半的ID的思想,将不同的消去。这次是将三个ID放入一个数组,与其他ID比较,不同则消去,最后剩下的就是最多的三个ID。设置数组k计数来实现消去。

    三、代码

     1 #include <iostream.h>
     2 
     3 int main()
     4 {
     5     int n[20]={1,2,8,9,7,1,1,6,1,2,2,9,11,15,2,1,2,1,9,9};
     6     int tienum=20; 
     7     int i,j;
     8     int shui[3]={0,0,0},k[3]={0,0,0};
     9     
    10     for(i=1;i<tienum;i++)
    11     {
    12         
    13         if (shui[0]==n[i])
    14             k[0]++;
    15         else if (shui[1]==n[i])
    16             k[1]++;
    17         else if (shui[2]==n[i])
    18             k[2]++;
    19         else if (k[0]==0)
    20         {
    21             shui[0]=n[i]; 
    22             k[0]++;
    23         }
    24         else if (k[1]==0)
    25         {
    26             shui[1]=n[i]; 
    27             k[1]++;
    28         }
    29         else if (k[2]==0)
    30         {
    31             shui[2]=n[i]; 
    32             k[2]++;
    33         }
    34         else
    35         {
    36             k[0]--;
    37             k[1]--;
    38             k[2]--;
    39         }    
    40     }
    41     cout<<"水王ID是:"<<shui[0]<<""<<shui[1]<<""<<shui[2]<<endl;
    42     return 0;
    43 }

    四、实验结果截图

     五、总结

    这是上一次题目的扩展,关键的消除思想已经有了,这次主要是解决三个ID的比较消去方法,即如何实现计数。通过同学讨论和参考核心代码实现。同时这次仍是对优化算法的训练,这些优化训练拓展了我们的思路。

  • 相关阅读:
    在vim中设置将tab自动转化为4个空格
    nginx1.4.6+php5.5.11+mysql5.6.17+mecache+opcache
    Centos7安装杀毒软件ClamAV
    网页中meta标记
    js刷新页面方法大全
    微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法
    phpcms v9 如何实现用户登录
    web页面自适应手机屏幕宽度
    微信公共平台消息回复类
    自动回复微信消息
  • 原文地址:https://www.cnblogs.com/dr73/p/4468944.html
Copyright © 2011-2022 走看看