XDOJ1009--小红帽
来源:互联网 发布:五笔拆字软件 编辑:程序博客网 时间:2024/06/05 01:10
Description
有一群喜欢带小红帽的家伙举行了一场别开生面的聚会,然而某些人被邪恶的WM讲帽子上涂了大灰狼的图标,可是每个人看不到自己头上的帽子有没有被涂,他们只能看到其他人头上的帽子是不是大灰狼的图案,现在告诉你每个人看到的别人头上大灰狼帽子的数量,聪明的你啊,能不能判断出来一共有多少个人头上被汪淼涂了可恶的大灰狼呢,当然如果你发现有些人撒谎的话,就直接输出-1吧
Input
包含多组测试数据,每组数组有两行
第一行读入一个n,代表聚会的人数 (n<=100)
第二行一次读入n个数,a[i]代表第i个人看到的其他人头上的大灰狼的个数
Output
每组数据输出一个数,多少人被涂了大灰狼
Sample Input
3
1 2 1
4
1 1 1 2
Sample Output
2
-1
分析思路:
这个题还是比较简单的,因为正确情况下一个人所说的数字一定是狼的数量或狼的数量减1。难点可以认为是怎么判断是否有人说慌的细节,可以描述方法如下:
(1)对输入的数据进行统计,找出其中最大的数Max和最小的Min,同时也计算出是Max的有多个数
(2)如果Max>=n或者Min>=n,那么这样情况是一定不会出现的,所以返回-1.
(3)如果Min=Max,就是全狼或全不为狼的情况
(4)如果Max-Min>1,这样情况也是不正常的
(5)如果为狼的人数不等于Max,这也是不正常的
有一群喜欢带小红帽的家伙举行了一场别开生面的聚会,然而某些人被邪恶的WM讲帽子上涂了大灰狼的图标,可是每个人看不到自己头上的帽子有没有被涂,他们只能看到其他人头上的帽子是不是大灰狼的图案,现在告诉你每个人看到的别人头上大灰狼帽子的数量,聪明的你啊,能不能判断出来一共有多少个人头上被汪淼涂了可恶的大灰狼呢,当然如果你发现有些人撒谎的话,就直接输出-1吧
Input
包含多组测试数据,每组数组有两行
第一行读入一个n,代表聚会的人数 (n<=100)
第二行一次读入n个数,a[i]代表第i个人看到的其他人头上的大灰狼的个数
Output
每组数据输出一个数,多少人被涂了大灰狼
Sample Input
3
1 2 1
4
1 1 1 2
Sample Output
2
-1
分析思路:
这个题还是比较简单的,因为正确情况下一个人所说的数字一定是狼的数量或狼的数量减1。难点可以认为是怎么判断是否有人说慌的细节,可以描述方法如下:
(1)对输入的数据进行统计,找出其中最大的数Max和最小的Min,同时也计算出是Max的有多个数
(2)如果Max>=n或者Min>=n,那么这样情况是一定不会出现的,所以返回-1.
(3)如果Min=Max,就是全狼或全不为狼的情况
(4)如果Max-Min>1,这样情况也是不正常的
(5)如果为狼的人数不等于Max,这也是不正常的
(6)输出Max
#include<iostream>using namespace std;int main(){ int N; int num[101]; for(int i=0;i<101;++i) num[i] = 0; while(cin>>N) { int maxV = -1; int minV = 101; for(int i=0;i<N;++i) num[i] = 0; for(int i=0;i<N;++i) { int t; cin>>t; if(t>maxV) maxV = t; if(t<minV) minV = t; ++num[t]; } if(minV>=N||maxV>=N) cout<<-1<<endl; else if(minV==maxV) { if(minV==0) cout<<0<<endl; else cout<<N<<endl; } else if(maxV-minV>1) cout<<-1<<endl; else { if(num[minV]==maxV) cout<<maxV<<endl; else cout<<-1<<endl; } } return 0;}
0 0
- XDOJ1009--小红帽
- 小红帽
- 小红帽
- 小红帽安装
- 小红帽的安装
- linux小红帽安装mysql
- 小红帽和两只兔子
- Thinkpad小红帽驱动,Ubuntu10.04
- 小红帽系统软件源的配置
- 小红帽Linux忘记root密码
- 小红帽下载-安装过程备忘录
- 小红帽mkinitrd:command not found解决方法
- (一)2014.8.8 小红帽女仆咖啡厅
- 小红帽免费酒店管理系统PMS
- 在VirtualBox虚拟机下安装linux小红帽
- Ubuntu 9.10 下 thinpad x200小红帽的设置
- 在虚拟机中的小红帽系统上安装VMware tools 方法
- RedHat(小红帽)下 yum用不了的解决办法
- POJ 2559 Largest Rectangle in a Histogram RMQ || 单调栈
- hadoop中文分词、词频统计及排序
- SPOJ AMR11A Magic Grid
- 正则表达式学习笔记
- Grub Rescue
- XDOJ1009--小红帽
- POJ-1990-MooFest
- php中json
- 天安门金水桥换金色护栏 迎接新中国成立65周年
- linux Centos 6.5 安装桌面环境GNOME
- Oracle11g关于isqlplus服务
- LeetCode-Search for a Range
- va_list的用法
- Linux学习笔记(六)挂载使用文件系统