小明是幼儿园的一名老师。某天幼儿园园长给小朋友们每人发一颗糖果,小朋友们拿到后发现有一些同学拿到的糖果颜色和自己相同,有一些同学糖果颜色和自己不同。

假定每个小朋友只知道有多少同学和自己拿到了相同颜色的糖果。

上课后,有一部分小朋友兴奋的把这一结果告诉小明老师,并让小明老师猜一猜,最少有多少同学拿到了糖果。

例如有三个小朋友告诉小明老师这一结果如下:

其中第一个小朋友发现有1人和自己糖果颜色一样,第二个小朋友也发现有1人和自己糖果颜色一样,第三个小朋友发现有3人和自己糖果颜色一样。

第一二个小朋友可互相认为对方和自己颜色相同,比如红色;

第三个小朋友不可能再为红色(否则第一二个小朋友会发现有2人和自己糖果颜色相同),假设他拿到的为蓝色糖果,那么至少还有另外3位同学拿到蓝色的糖果,最终至少有6位小朋友拿到了糖果。

现在请你帮助小明老师解答下这个谜题。

输入描述:

假定部分小朋友的回答用空格间隔,如 1 1 3

输出描述:

直接打印最少有多少位小朋友拿到糖果
如 6

输入例子1:

1 1 3

输出例子1:

6

输入例子2:

0 0 0

输出例子2:

3

例子说明2:

三位小朋友都没发现有人和自己的颜色相同,所以最少的情况就是三位小朋友糖果的颜色均不同

思路:

  1. 输入的描述  首先是当输入的时候压入一个vector动态数组; int val;while(cin>>val) push_back;
  2. 然后是逻辑问题;主要是利用查找表的思路 找出当前这个数字的次数;与它相同的有几个,然后看看这个个数出现的次数;主要就是围绕这个map<int,int>map来展开;
  3. 这个map 的key--val  :key是nums[i]表示的是重复的个数;val是出现的次数;要知道 出现的次数与人数之间要差一个1;有两个重复的 意思是次数是3;

code:

#include<iostream>
#include<vector>
#include<map>
using namespace std;
int main()
{int val;vector<int>nums;map<int,int>map;//key--val  是nums  和次数之间的对应关系;int res;while(cin>>val)//输入这一块要有一个较好的认识才行;nums.push_back(val);for(int i=0;i<nums.size();i++){if(map.find(nums[i])==map.end())//如果在之前没有出现这个次数;那么在这儿要将它加一个数;然后现在的人数 是 重复出现的个数(nums[i])+他自己(1);{map[nums[i]]++;res+=nums[i]+1;}else if(map[nums[i]]<=nums[i])//如果出现的次数小于重复的个数的话 给他加一 知道次数=个数+1;{map[nums[i]]++;            }else //如果出现的次数等于这个 重复的个数+1的时候 运算就是 重复的个数+1;{map[nums[i]]=1;//次数设置为1;(不知道为什么在这二设置为1);是不是意味着找完了;?res+=nums[i]+1;}}cout<<res;return 0;}

网易:[编程题] 糖果谜题相关推荐

  1. 2018校招笔试题——网易编程题跳石板

    题目与要求如下所示: [编程题] 跳石板 时间限制:1秒 空间限制:32768K 小易来到了一条石板路前,每块石板上从1挨着编号为:1.2.3....... 这条石板路要根据特殊的规则才能前进:对于小 ...

  2. 《网易编程题》计算糖果

    题目描述 A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息: A - B, B - C, A + B, B + C. 这四个数值.每个 ...

  3. 《网易编程题》藏宝图

    题目描述 牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串 s 和 t,根据古老的传说,牛牛需要每次都回答 t 是否是 s 的子序列.注意,子 ...

  4. 《网易编程题》下厨房

    题目:牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料. 输入描述: 每个输入包含 1 个测试用例.每个测试用例的第 i 行,表示完成第 i 件料理需要哪些 ...

  5. 编码-京东实习笔试编程题-糖果问题-动态规划

    问题 某糖果公司专门生产儿童糖果,它最受儿童欢迎的糖果有A1.A2两个序列,均采用盒式包装.包装好的A1类糖果体积为一个存储单位,而包装好的A2类糖果体积正好是A1类的两倍. 这两类糖果之所以广受儿童 ...

  6. 【网易编程题】小易魔法王国采购魔法神器

    原题: 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币. 魔法机器1:如果投入x个 ...

  7. 《网易编程题》疯狂队列

    小易老师是非常严厉的,它会要求所有学生在进入教室前都排成一列,并且他要求学生按照身高不递减的顺序排列.有一次,n个学生在列队的时候,小易老师正好去卫生间了.学生们终于有机会反击了,于是学生们决定来一次 ...

  8. 《网易编程题》买苹果

    题目描述 小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分). 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带.如果不能购买恰好n个苹果 ...

  9. 《网易编程题》分苹果

    题目描述 n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少 ...

最新文章

  1. java事务设计iofo,Spring事务最佳实践
  2. class-5 If语句
  3. linux进程卡住_鸿蒙系统,Linux? Android?
  4. JavaFX场景切换代码示例
  5. 容器编排技术 -- Kubernetes是什么
  6. XShell——使用
  7. python将图片转换成二进制文本逻辑_将python图片转为二进制文本的实例
  8. 视频教程-汇编语言程序设计VII-其他
  9. csgo准星设置代码_csgo准星代码怎么输入
  10. CodeBlocks汉化
  11. 机密领域管理扩展技术(RME)对TF-A的修改分析笔记。
  12. 细粒度分类:Hierarchical Bilinear Pooling(HBP),分级双线性池化(一)
  13. Apple Pencil有必要买正版吗?Apple Pencil平替推荐
  14. i春秋 - Exploit-Exercises: Nebula - level06
  15. Python:RSA秘钥生成与加密解密整理
  16. eclipse html清理缓存,eclipse中的缓存怎么清理
  17. [附源码]java毕业设计病历管理系统
  18. 豆瓣爬虫btmd_12_Mamba文件
  19. 名词诠释大全以及新站上线后,seo优化应该如何做?
  20. 无法访问其它家庭组计算机,Win7电脑同一个家庭组或者工作组,电脑无法相互访问...

热门文章

  1. EditThisCookie chrome插件使用cookie属性介绍
  2. 单元测试--连接数据库CRUD
  3. 测试技能提升-python编程
  4. 数据分析只有和业务挂钩才能产生真正驱动力
  5. 软件智能:aaas系统中AI众生的“世”和“界” 之9 一个主题(神经系统)及其两条线索
  6. “师创杯”山东理工大学第九届ACM程序设计竞赛 热身赛 E.上色的纱雾【二分+贪心】
  7. BigDecimal操作double、float精度丢失问题
  8. COMSOL电化学,燃料电池,锂离子电池
  9. js 四舍五入bug解决方法
  10. 【Scratch画图100例】图46-scratch绘制花朵 少儿编程 scratch编程画图案例教程 考级比赛画图集训案例