课堂练习之检测水军(拓展)

一、题目

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

二、设计思路

上一次是找出一个水军,这个水军发帖数超过了总帖数一半,这一次是找三个水军,这三个水军每一个人的帖子数都超过了总帖数的1/4,我们只需要在上一次的基础上进行改进就可以了,上一次是挨着消去两个,这次挨着消去四个,剩下最后的三个就是水军。

三、源代码

 1 // shuitong.cpp : Defines the entry point for the console application.
 2 //韩雪东
 3
 4 #include "stdafx.h"
 5 #include "iostream.h"
 6 int main(int argc, char* argv[])
 7 {
 8
 9     int i,j=10,k=1,q=1,p=1,id1,id2,id3;
10     int a[10]={1,2,4,3,1,2,3,1,2,3};
11     id1=a[0];
12     id2=a[1];
13     id3=a[2];
14     for(i=3;i<j;i++)
15     {
16         if(id1!=a[i]&&id2!=a[i]&&id3!=a[i])
17         {
18             k=k-1;
19             q=q-1;
20             p=p-1;
21             if(k<=0&&q>0&&p>0)
22             {
23                 id1=a[i+1];
24                 k=1;
25                 i++;
26             }
27             else if(k>0&&q<=0&&p>0)
28             {
29                 id2=a[i+1];
30                 q=1;
31                 i++;
32             }
33             else if(k>0&&q>0&&p<=0)
34             {
35                 id3=a[i+1];
36                 p=1;
37                 i++;
38             }
39             else if(k<=0&&q<=0&&p>0)
40             {
41                 id1=a[i+1];
42                 k=1;
43                 id2=a[i+2];
44                 q=1;
45                 i=i+2;
46             }
47             else if(k<=0&&q>0&&p<=0)
48             {
49                 id1=a[i+1];
50                 k=1;
51                 id3=a[i+2];
52                 p=1;
53                 i=i+2;
54             }
55             else if(k>0&&q<=0&&p<=0)
56             {
57                 id2=a[i+1];
58                 q=1;
59                 id3=a[i+2];
60                 p=1;
61                 i=i+2;
62             }
63             else if(k<=0&&q<=0&&p<=0)
64             {
65                 id1=a[i+1];
66                 k=1;
67                 id2=a[i+2];
68                 q=1;
69                 id3=a[i+3];
70                 p=1;
71                 i=i+3;
72             }
73         }
74         else if(id1==a[i]&&id2!=a[i]&&id3!=a[i])
75         {
76             id1=a[i];
77             k=k+1;
78         }
79         else if(id1!=a[i]&&id2==a[i]&&id3!=a[i])
80         {
81             id2=a[i];
82             q=q+1;
83         }
84         else if(id1!=a[i]&&id2!=a[i]&&id3==a[i])
85         {
86             id3=a[i];
87             p=p+1;
88         }
89
90     }
91     cout<<"水桶id分别为:"<<id1<<","<<id2<<","<<id3<<endl;
92     return 0;
93 }

四、运行结果

五、心得体会

既然老师出的题目和上一次有关联,就是在上一次的基础上进行了扩展,那么大致的方法还会和上一次大致相同,我们只要在上一次的基础上进行改进就好了。

时间: 2024-08-02 00:43:24

课堂练习之检测水军(拓展)的相关文章

课堂练习之检测水军

一.实验题目与设计思路 1.题目: 三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半. 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 2.设计思路 首先这个题目有有一个前提就是在总帖数一定的情况下,这些帖子里面有一半以上的帖子都设计到一个ID,这个ID就是水军,为了制止这个水军,就要检测出这个水军,那

使用TypeScript拓展你自己的VSCode

转自:http://www.iplaysoft.com/brackets.html使用TypeScript拓展你自己的VSCode! 0x00 前言在前几天的美国纽约,微软举行了Connect(); //2015大会.通过这次大会,我们可以很高兴的看到微软的确变得更加开放也更加务实了.当然,会上放出了不少新产品和新功能,其中就包括了VS Code的beta版本.而且微软更进一步,已经在github将VS Code的代码开源了.除了这些让人兴奋的消息,我们还应该注意到VS Code提供了对拓展的支

使用TypeScript拓展你自己的VS Code!

0x00 前言 在前几天的美国纽约,微软举行了Connect(); //2015大会.通过这次大会,我们可以很高兴的看到微软的确变得更加开放也更加务实了.当然,会上放出了不少新产品和新功能,其中就包括了VS Code的beta版本.而且微软更进一步,已经在github将VS Code的代码开源了.除了这些让人兴奋的消息,我们还应该注意到VS Code提供了对拓展的支持.所以本文就来聊一聊使用TypeScript开发VS Code拓展的话题吧. 本文所使用的拓展的应用商店页面: https://m

课堂作业--寻找水军

一.题目要求 随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗? 二.设计思路 本次题目是在上次寻找“水王”的基础上进行拓展,设计思路和上次的相似,上次寻找水王是用的一个水王变量,一个计数变量,那么本次的设计思想沿用上次的技巧,有三个水军变量,三个计数变量:分别使水军的这三个变量和下一个数比较,然后和三个水军相对应的计数变量分别进行计数,相同则加一,不同则抵消减一:依次循环,和水王的规则类似,最后找到3

目标检测最全论文集锦引用地址 最新进展和研究成果 2019最火目标检测算法centernet 拓展想法以及拓展研究的思路

目标检测最全论文集锦引用地址 最新进展和研究成果 2019最火目标检测算法centernet 拓展想法以及拓展研究的思路 待办 经典论文集锦 https://zhuanlan.zhihu.com/p/36818086 https://handong1587.github.io/deep_learning/2015/10/09/object-detection.html 目标检测最新进展与研究 https://zhuanlan.zhihu.com/p/96115519 centernet思路梳理

课堂作业——找水军

题目: 思路: 编程之美的扩展了这个问题,在求解找出一个“水王”的基础上进行补充分析,之前遍历数组的时候只用保存两个值:一个是数组中的ID,一个是它对应出现的次数.而这次需要找出3个ID(即输出3个结果),就需要另开辟新的数组来分别保存.首先保存前3个ID,每当遍历下一个ID的时候,先要判断下一个和当前保存的这3个ID是否有相同的,若有相同的则此ID对应的次数加1:若不同则次数减1.再判断如果有ID次数为零,就用下一个ID把它替换,并把次数设为1.与之前不同的是,可能会出现次数都不为0的情况,这

坑爹的C++要课堂检测了 然而我什么都没学

前六章的知识框架 概念(细枝末节的纠缠) 细节点的分析(坑逼) 实际的代码演练 ? Chapter1基础知识 进制 存储 Chapter2 简单程序 数据类型 运算符和表达式 数据类型转化 I/O Chapter3 控制结构 (循环嵌套是什么鬼) Chapter4 函数 Chapter5 数组(二维数组是什么鬼 然而完全不会) Chapter6 自定义数据类型(然而只会结构体) ? (卧槽这是什么鬼啊,别人 数学逻辑不错然而好东西我看不懂啊) (以后做作业解决问题也要好好写随笔 !) TAGS:

课堂检测

ScoreInformation类: package ceshi; class ScoreInformation { private String stunumber; private String name; private double mathematicsscore; private double englishiscore; private double networkscore; private double databasescore; private double softwar

2017年最权威的1000集大型web前端视频教程(爱创课堂出品)文后附录视频下载链接

2017年最新爱创课堂前端开发课程介绍爱创课堂Web前端开发工程师培训-价值1万8课程 资料持续更新中,第一时间领取请加QQ2079576908 Web前端开发工程师,主要职责是利用HTML.XHTML.CSS.JAVAScript.FLASH等各种Web前端技术进行客户端产品的开发.完成客户端程序(也就是浏览器端)的开发,开发JavaScript以及Flash模块,同时结合后台开发技术模拟整体效果,进行丰富互联网的Web前端开发,致力于通过技术改善用户体验. 第一阶段:页面制作基础 从这一基础