zoukankan      html  css  js  c++  java
  • 寻找小水王

     1 #include<iostream>
     2 using namespace std;
     3  
     4 void Waterking_find(int ID[],int num)                 
     5 {
     6     int waterking[3]={0,0,0};
     7     int count[3]={0,0,0};
     8     for(int i=0;i<num;i++)
     9     {
    10         if(count[0]==0&&ID[i]!=waterking[1]&&ID[i]!=waterking[2])
    11         {
    12             waterking[0]=ID[i];
    13             count[0]++;
    14         }
    15         if(count[1]==0&&ID[i]!=waterking[0]&&ID[i]!=waterking[2])
    16         {
    17             waterking[1]=ID[i];
    18             count[1]++;
    19         }
    20         if(count[2]==0&&ID[i]!=waterking[0]&&ID[i]!=waterking[1])
    21         {
    22             waterking[2]=ID[i];
    23             count[2]++;
    24         }
    25         if(ID[i]==waterking[0])
    26         {
    27             count[0]++;
    28         }
    29         if(ID[i]==waterking[1])
    30         {
    31             count[1]++;
    32         }
    33         if(ID[i]==waterking[2])
    34         {
    35             count[2]++;
    36         }
    37         if(ID[i]!=waterking[0]&&ID[i]!=waterking[1]&&ID[i]!=waterking[1])
    38         {
    39             count[0]--;
    40             count[1]--;
    41             count[2]--;
    42         }
    43 
    44     }
    45     cout<<"这三个水王分别是:"<<waterking[0]<<" "<<waterking[1]<<" "<<waterking[2]<<endl;
    46 }
    47 int main()
    48 { 
    49     int Num;
    50     int ID[14];
    51     cout<<"请输入发帖子的数量:"<<endl;
    52     cin>>Num;
    53     cout<<"输入发送每个帖子的ID:"<<endl;
    54     for(int i=0;i<Num;i++)
    55     {
    56         cin>>ID[i];
    57     }
    58     Waterking_find(ID,Num);
    59     return 0;
    60 }

    一、题目

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

    二、实验思路:

        1、定义waterking[]来指定水王,count[]数组用来对三个水王的个数进行计数。

        2、给出所有的ID数,先找出前三个不同的数本别设定为三个不同的小水王

     3、继续向后遍历其他的数,若遇到其中的一个水王,则那个水王的count[i]+1,若遇到与三个水王都不同的数,三个水王的count[]—1,若其中的某个水王的count[]减为0时,将遍历到的数设置为新的水王,遍历到最后,找到三个小水王。

    三、实验截图

    四、实验总结:

    我感觉这次实验和和上一次的思路基本相同,只是增加了水王的个数,但是我们就觉得难了很多,一开始就没有想出来。我觉得有些题目的思路是相通的,我们要耐心研读,找出解题的入口。

  • 相关阅读:
    POJ 2723 Get Luffy Out(2-SAT)
    ZOJ 3613 Wormhole Transport
    HDU 4085 Peach Blossom Spring
    NBUT 1221 Intermediary
    NBUT 1223 Friends number
    NBUT 1220 SPY
    NBUT 1218 You are my brother
    PAT 1131. Subway Map (30)
    ZSTU OJ 4273 玩具
    ZSTU OJ 4272 最佳淘汰算法
  • 原文地址:https://www.cnblogs.com/luxin123/p/5534449.html
Copyright © 2011-2022 走看看