zoukankan      html  css  js  c++  java
  • 软件工程作业--找水王

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

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

    思路:删贴,水王发帖数目超过了帖子数目的一半,我们从列表头开始匹配,每匹配到一个不一样的就把俩帖子都删了,遇到一样的就删一个留一个。

    #include<iostream>
    #include<string>
    #define N 10     //可以定义列表长度
    
    using namespace std;
    int main()
    {
        string king;
        //定义列表
        string IdList[N]={"2","3","1","3","1","1","7","1","2","3"};
        //假设第一个id是水王
        int i=0;
        int num=1;
        king=IdList[0];
        for(i=1;i<N;i++)
        {
            //如果当前id和king id不同
            if(IdList[i]!=king)
            {
                //num-1
                num=num-1;
                //num为0,将下一个id 设为 king,并直接跳过下一次循环,并将 num设为1
                //若num不为0,king 不变
                if(num==0)
                {
                    king=IdList[i+1];
                    i=i+1;
                    num=1;
                }
            }
            //若id和king id相同,num+1
            else
            {
                king=IdList[i];
                num=num+1;
            }
        }
        cout<<"要找的水王的 id 为:"<<king<<endl;
        return 0;
    }

     个人总结:遇到问题多思考,多动动脑子。

  • 相关阅读:
    修理牛棚 贪心 USACO
    零件加工 贪心 题解
    花店橱窗 动态规划 题解
    动态规划 摆花 题解
    NOIP2004普及组第3题 FBI树
    实况世界杯4小游戏链接
    poj2761(treap入门)
    最大连续子序列和(分治法)
    任意区间的最长连续递增子序列,最大连续子序列和
    lca转RMQ
  • 原文地址:https://www.cnblogs.com/XiaoGao128/p/13056074.html
Copyright © 2011-2022 走看看