博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
找水王2
阅读量:6186 次
发布时间:2019-06-21

本文共 1693 字,大约阅读时间需要 5 分钟。

一、题目:

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

二、设计思路:

和原来的想法一致,用相互抵消的方法。上次是1人超过一半,现在是4人超过1/4,所以对于(n-1)人超过1/n都是可以算的。思想是这样的,每次去掉n个不同,当剩下ID没有n个不同时,剩下的就是要找的ID。

三、程序代码:

1 #include "iostream" 2 using namespace std; 3 #define MAXSIZE 30 4  5 void FindWater(int ID[], int len,int water[]) 6 { 7     int counter[3];                    //计数器 8     counter[0]=counter[1]=counter[2]=0; 9     water[0]=water[1]=water[2]=-1;    //初始化嫌疑人列表10     for(int i=0;i
>num;54 cout<<"请输入发帖对应的所有的ID:";55 for(int i=0;i
>ID[i];58 }59 FindWater(ID,num,WaterKing);60 cout<<"水桶是:";61 for(int i=0;i<3;i++)62 {63 cout<
<<" ";64 }65 cout<

 

四、运行截图

五、项目计划日志      

 

 

日期&&任务

听课 编写程序 阅读相关书籍 网上查找资料   日总计
周一 100   30 30 160
周二     30 30 60
周三   30 30 10 70
周四 100 20  30   150
周五   120   30 30 180
周六          
周日          
周总计 200 170 150 100

620

 

时间记录日志

5/23

日期 开始时间 结束时间 中断时间 净时间 活动 备注
5/23 14:00 15:50 10 100 听课 软件工程上课
  21:04 21:  34 0 30 阅读书籍 《梦断代码》
  22:10 22: 40 30 网上查找资料  
 5/24  18:00  18:30  0  30  阅读书籍 《梦断代码》 
  22:  15 22:  45 30 网上查找资料  
5/25 19:  25 20: 00 5 30 编写程序 找水王2
  22:00 22: 30 0 30 阅读书籍 《梦断代码》
  22:40 22: 50 0 10 查找资料  
5/26 14:00 15:  50 10 100 上课 软件工程上机
  18:26 18: 50 20 编写程序 找水王2
   22:00  22:30  0  30  阅读书籍 《梦断代码》
5/27 14:  00 16:  20 20 120  编写程序 找水王2
  11:23 12: 00 7 30 网上查找资料  
   21:00  21:30  0  30  阅读书籍  《构建之法》

六、个人总结

      对于这个题目,一开始的思路,我想也是多数同学会有的思路,就是排序嘛,大不了就一个一个的找然后再逐个累加算出他们的ID号出现的总数,但是这个方法无论是在复杂度还有许多方面都不够简便,然后在老师的提示下“相减”,然后有了新的思。后来老师提到了遍历然后排序,中间项肯定是水王ID,可是时间复杂度为n*n,为了降低时间复杂度,老师提示用两两消除的思想,后来我们就想到了如何解决。由此可见,我们的思路还不是很开阔,只局限于那些 自己学过的简单的常用的知识,所以我还有很大的进步的空间。通过对找水王题目的扩展,举一反三解决多个水桶的问题。课下应该多练习才能做到熟能生巧。

转载于:https://www.cnblogs.com/qizhonh/p/5534955.html

你可能感兴趣的文章
信息安全:防泄密软件设计构想与选型建议
查看>>
mybatis学习七 单多表关联
查看>>
AGG第三十三课 line_profile_aa 参数分析说明
查看>>
FTP原理和修改FTP默认端口
查看>>
零基础过五门CPA的一些经验及教训分享
查看>>
Windows服务的手动添加和删除方法
查看>>
计算机基本知识(7002)---RS485智能仪表
查看>>
加快菜单显示速度
查看>>
iphone中使用NSoperation实现图片异步加载
查看>>
AndroidAnnnotations注入框架的工作原理(二)
查看>>
用fail2ban阻止密码尝试***
查看>>
/etc/resolv.conf文件被复写的解决
查看>>
Windows抓127.0.0.1的包
查看>>
android 判断3G WIFI网络
查看>>
接收有限范围的无限数据的一种巧妙方法
查看>>
博客已搬家,特此声明!!
查看>>
Web前端——字体规范
查看>>
博为峰JavaEE技术文章 —— Hibernate Configuration
查看>>
高并发量网站解决方案
查看>>
配置Etcd集群
查看>>