zoukankan      html  css  js  c++  java
  • 个人项目找水王

    一、题目要求

      三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

    二、设计思想

      水王问题就是根据消消乐游戏的一个变形,消消乐是消除相同的图案,而找出水王则是删掉相邻的不同的ID,由于“水王”发帖数目超过了帖子数目的一半,这样剩下的ID一定是水王的ID。这样就满足了时间复杂度为O(n)的要求。

    三、程序代码

     #include<iostream.h>
      void main()
     {
          int arr[10]={3,3,6,4,3,5,3,3,7,3};//假设的ID号
          int shuiwang = 0; 
         int count=0;  //标记
         cout<<"假设有10个ID,分别为:";
         for(int i=0;i<10;i++)
         { 
             cout<<arr[i]<<"  ";
            if(count == 0)
             { 
                 shuiwang = arr[i]; 
                 count = 1; 
            } 
             else
            { 
                 if(shuiwang == arr[i]) 
                   count ++; 
                 else  
                    count --; 
             } 
         }
         cout<<endl<<"水王的ID是"<<shuiwang<<endl;
     }
    

      四、运行结果

    五、实验心得

    通过老师上课的提示和思路,这个问题就变得简单起来。

  • 相关阅读:
    洛谷 1736 创意吃鱼法
    有多重限制的背包
    洛谷 1417 烹调方案
    2008 noip 传纸条
    环形石子合并 洛谷 1880 && hdu 3506 Monkey Party
    洛谷 1282 多米诺骨牌
    (金明的预算方案)依赖性的背包
    分组背包问题
    混合背包问题
    多重背包问题
  • 原文地址:https://www.cnblogs.com/lmml20160702/p/10097545.html
Copyright © 2011-2022 走看看