A. Brain's Photos ——Codeforces Round #368 (Div. 2)
A. Brain's Photos
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
Small, but very brave, mouse Brain was not accepted to summer school of young villains. He was upset and decided to postpone his plans of taking over the world, but to become a photographer instead.
As you may know, the coolest photos are on the film (because you can specify the hashtag #film for such).
Brain took a lot of colourful pictures on colored and black-and-white film. Then he developed and translated it into a digital form. But now, color and black-and-white photos are in one folder, and to sort them, one needs to spend more than one hour!
As soon as Brain is a photographer not programmer now, he asks you to help him determine for a single photo whether it is colored or black-and-white.
Photo can be represented as a matrix sized n × m, and each element of the matrix stores a symbol indicating corresponding pixel color. There are only 6 colors:
'C' (cyan)
'M' (magenta)
'Y' (yellow)
'W' (white)
'G' (grey)
'B' (black)
The photo is considered black-and-white if it has only white, black and grey pixels in it. If there are any of cyan, magenta or yellow pixels in the photo then it is considered colored.
Input
The first line of the input contains two integers n and m (1 ≤ n, m ≤ 100) — the number of photo pixel matrix rows and columns respectively.
Then n lines describing matrix rows follow. Each of them contains m space-separated characters describing colors of pixels in a row. Each character in the line is one of the 'C', 'M', 'Y', 'W', 'G' or 'B'.
Output
Print the "#Black&White" (without quotes), if the photo is black-and-white and "#Color" (without quotes), if it is colored, in the only line.
Examples
input
2 2 C M Y Y
output
#Color
input
3 2 W W W W B B
output
#Black&White
input
1 1 W
output
#Black&White
____________________
题意:一张照片用矩阵n * m 表示,里面有C M Y W G B 几种颜色,判断这张照片是否是黑白照(黑白照只有W G B 三种)
程序应该还是比较好写的,一开始无脑写了一个版本是:
#include<iostream>
using namespace std ;
string s[100];
int main()
{
int n , m ;
cin >> n >> m ;
int flag = 0 ;
for ( int i = 0 ; i < n ; i++ )
{
for ( int j = 0 ; j < m ; j++ )
{
cin>>s[i][j] ;
}
}
for ( int i = 0 ; i < n ; i++ )
{
for ( int j = 0 ; j < m ; j++ )
{
switch(s[i][j])
{
case'C':
case'M':
case'Y':
flag = 1 ; break ;
default : continue ;
}
}
}
if(flag == 1 )
cout << "#Color"<< endl ;
else cout <<"#Black&White" << endl ;
return 0 ;
}
这样的话,大概时间复杂度在1W左右,应该能A,还是runtime error (但是在本机评测的话RE的数据可以在4.6s跑完,不知道是TLE了还是又是代码写的还会导致segment fault) 。
我在这里认为既然本机4.6s能跑完,应该是TLE了。于是怀疑被无数ACMer所诟病的cin cout 的效率,于是用scanf printf改写:
//#include<iostream>
//using namespace std ;
#include<cstdio>
char s[110][110];
int main()
{
int n , m ;
//freopen("2.txt","r",stdin);
scanf("%d %d",&n,&m);
int flag = 0 ;
for ( int i = 0 ; i < n ; i++ )
{
for ( int j = 0 ; j < m ; j++ )
{
//cin>>s[i][j] ;
scanf("%s",&s[i][j]);
switch(s[i][j])
{
case'C':
case'M':
case'Y':
flag = 1 ; break ;
default : continue ;
}
}
}
if(flag == 1 )
//cout << "#Color"<< endl ;
printf("#Color\n");
else //cout <<"#Black&White" << endl ;
printf("#Black&White\n");
return 0 ;
}
成功AC。
但是这个还是有优化空间的,发现开了那么大数组其实根本没必要使用。
最后优化一下代码:
#include<cstdio>
int main()
{
int n , m ;
scanf("%d %d",&n,&m);
int flag = 0 ;
char t[2];
for ( int i = 0 ; i < n ; i++ )
{
for ( int j = 0 ; j < m ; j++ )
{
//cin>>s[i][j] ;
scanf("%s",&t);
switch(t[0])
{
case'C':
case'M':
case'Y':
flag = 1 ; break ;
default : continue ;
}
}
}
if(flag == 1 )
//cout << "#Color"<< endl ;
printf("#Color\n");
else //cout <<"#Black&White" << endl ;
printf("#Black&White\n");
return 0 ;
}
这里似乎还是有字符串的问题,一开始蠢了字符串开成了char t[1];还错了好几次,貌似我访问t[1]访问到了m的地址,于是t[0]存放字符,t[1]把m的值改变了导致非常奇怪的跑法。
ps:在这里之所以我总是不甘心的用%s 字符串处理,是为了处理空格。
最后 AC记录:
![]()
A. Brain's Photos ——Codeforces Round #368 (Div. 2)的更多相关文章
- Codeforces Round #368 (Div. 2) A. Brain's Photos (水题)
Brain's Photos 题目链接: http://codeforces.com/contest/707/problem/A Description Small, but very brave, ...
- Codeforces Round #368 (Div. 2)
直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...
- Codeforces Round #368 (Div. 2) C. Pythagorean Triples(数学)
Pythagorean Triples 题目链接: http://codeforces.com/contest/707/problem/C Description Katya studies in a ...
- Codeforces Round #368 (Div. 2) B. Bakery (模拟)
Bakery 题目链接: http://codeforces.com/contest/707/problem/B Description Masha wants to open her own bak ...
- Codeforces Round #368 (Div. 2) A. Brain's Photos 水题
A. Brain's Photos 题目连接: http://www.codeforces.com/contest/707/problem/A Description Small, but very ...
- Codeforces Round #368 (Div. 2)A B C 水 图 数学
A. Brain's Photos time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- Codeforces Round #368 (Div. 2) A , B , C
A. Brain's Photos time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- Codeforces Round #368 (Div. 2) A
Description Small, but very brave, mouse Brain was not accepted to summer school of young villains. ...
- Codeforces Round #368 (Div. 2) D. Persistent Bookcase
Persistent Bookcase Problem Description: Recently in school Alina has learned what are the persisten ...
随机推荐
- QCMediaPlayer mediaplayer NOT present(android)
出现了“QCMediaPlayer mediaplayer NOT present”这个错误!!!我的手机是小米手机2,我给它刷机刷到了Android 4.4.4,后来我学长是这样解决的:case R ...
- 向量相加CUDA练习
#include<string.h> #include<math.h> #include<stdlib.h> #include<stdio.h> #de ...
- Time Complexity Big-O
It can be inserted anywhere. Note that if you insert it in the beginning the TC will be O(#s +c), bu ...
- ® 不需要显示为商标符的做法
若url中有参数reg,则把® 变为 ®
- hadoop MapReduce - 从作业、任务(task)、管理员角度调优
Hadoop为用户作业提供了多种可配置的参数,以允许用户根据作业特点调整这些参数值使作业运行效率达到最优. 一 应用程序编写规范 1.设置Combiner 对于一大批MapReduce ...
- java设计模式(三)
单例模式在一个jvm中有且仅有一个对象(1)内部静态类实现 class Singleton{ /*构造方法私有 防止实例化*/ private Singleton(){}; public static ...
- UVALive 6910 Cutting Tree(并查集应用)
总体来说,这个题给的时间比较长,样例也是比较弱的,别的方法也能做出来. 我第一次使用的是不合并路径的并查集,几乎是一种暴力,花了600多MS,感觉还是不太好的,发现AC的人很多都在300MS之内的过得 ...
- final使用
final修饰 基本数据类型时候 对应的 数据不能改变:::final修饰 对象类型 ,那么对应的引用地址不能改变(对象中的值可以改变): 如果final修改方法,那么该方法不能被子类重写 :: ...
- 工艺成型及仿真、铸造工艺及仿真ProCAST软件入门认识介绍
视频源:技术邻 关键词:ProCAST.工艺成型及仿真.铸造工艺及仿真 简介:ProCAST 软件是由美国 USE 公司开发的铸造过程的模拟软件采用基于有限元(FEM)的数值计算和综合求解的方法,对铸 ...
- 《JS权威指南学习总结--6.5枚举属性》
内容要点: 一.for/in循环 1.for/in循环可以在循环体中遍历对象中所有可枚举的属性(包括自有属性和继承的属性),把属性名称赋值给循环变量.对象继承的内置方法不可枚举,但在代码中给对象添加的 ...