CSDN 四川大学线下编程比赛第二题:Peter的X
题目详情:
http://student.csdn.net/mcs/programming_challenges
Peter是个小男孩。他总是背不清26个英文字母。
于是,刁钻的英语老师给他布置了一个很奇怪的作业。老师给了他一个由26个英文字母构成的N*N 的矩阵(我们保证N一定是一个奇数),问他这个矩阵构成的图案是否是一个标准的“X”。
一个标准的X的定义:1、对角线上全部元素都是同一个字母。2、全部非对角线上的元素也都是同一个字母。且字母与对角线上的字母不同。
假设是则输出“YES”。否则输出“NO”。
输入描写叙述:
多组測试数据(数据量在100组以内)。每组測试数据第一行为一个整数N(1<=N<=300),表示表格的大小。
以下是N行是一个由字母构成的N*N的矩阵。
输出描写叙述:
对于每组输入数据,输出一行“YES”或“NO”。
输入例子:
5
xooox
oxoxo
soxoo
oxoxo
xooox
3
wsw
sws
wsw
3
xpx
pxp
xpe
输出例子:
NO
YES
NO
题目分析:
简单的模拟推断题,首先推断主对角线。然后推断副对角线,之后推断其它位置,最后推断对角线的元素是否和其它位置的元素一样。
AC代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char a[303][303];
int JudgeX(int n){
if(n==1) return 1;
char c1=a[1][1],c2;
for(int i=1;i<=n;i++){//推断主对角线
if(a[i][i]!=c1) return 0;//不是
}
for(int i=1;i<=n;i++){//推断副角线
if(a[i][n+1-i]!=c1) return 0;//不是
}
c2=a[1][2];
for(int i=1;i<=n;i++){//其它
for(int j=1;j<=n;j++){
if(i!=j&&(i+j)!=(n+1)){
if(a[i][j]!=c2) return 0;
}
}
}
if(c1==c2) return 0;//别忘了不能相等了
return 1;
}
int main()
{
int n;
while(cin>>n){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
if(JudgeX(n)) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
CSDN 四川大学线下编程比赛第二题:Peter的X的更多相关文章
- CSDN 四川大学线下编程比赛第一题:数字填充
题目意思: http://student.csdn.net/mcs/programming_challenges peter喜欢玩数字游戏,但数独这种游戏对他来说太简单了,于是他准备玩一个难的游戏. ...
- CSDN 厦门大学线下编程比赛第一题:求和(同余定理)
题目意思: 给定a和n,计算a+aa+aaa+aaaa+...+a...a(n个a) 的和. 输入描写叙述:測试数据有多组,以文件结尾.每行输入a,n(1<=a,n<=1000000). ...
- CSDN挑战编程——《金色十月线上编程比赛第二题:解密》
金色十月线上编程比赛第二题:解密 题目详情: 小强是一名学生, 同一时候他也是一个黑客. 考试结束后不久.他吃惊的发现自己的高等数学科目竟然挂了,于是他果断入侵了学校教务部站点. 在入侵的过程中.他发 ...
- 代码审计-四叶草杯线下awd比赛源码web2
今晚简单来看看那天比赛的源码吧,比赛的时候还是有些慌没有好好去静下心看代码. awd给的题中的漏洞,都是那种可以快速让你利用拿到权限后得到flag的那种,特别复杂利用的一般没有. 建议先黑盒去尝试,例 ...
- 洛谷2018寒假集训tg第二次比赛第二题Princess Principal题解
这算不算泄题啊...被kkk发现会咕咕咕吧. 题目大意:给定一个数列a,与常数n,m,k然后有m个询问,每个询问给定l,r.问在a[l]到a[r]中最少分成几段,使每段的和不超过k,如果无解,输出Ch ...
- hihocoder #1289 : 403 Forbidden (2016 微软编程笔试第二题)
#1289 : 403 Forbidden 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi runs a web server. Sometimes ...
- [ X.XX]CF每日一题系列线下更新中
现在做的都好水啊,就不写博客了,线下有记录滴
- “玲珑杯”ACM比赛 Round #11 " ---1097 - 萌萌哒的第二题
1097 - 萌萌哒的第二题 题意:中文题好像没有必要说题意了吧.. 思路:我们知道由于运输桥不能交叉,所以从右往左所修建的桥的序号是严格单增的.但是每个工厂B有6种选择,只能选一个求最多能建造几座桥 ...
- 由于空间,注定的结果——第五届山东省ACM编程比赛总结
应该是,这是一个很失败的结果.目前省赛玩具.作为志愿者说,,铁匠是一个很丢人的事. 作为队长.全然没有想到会是这种一次旅程.尽管由于去baidu的实习和各种offer的申请,对acm抱着能水就水绝不深 ...
随机推荐
- 用lambda表达式声明委托
首先来分享一段代码: Func<int, int, int> addMethod = (int x, int y) => (x + y); 熟悉的人肯定知道这句话是什么意思,可是不熟 ...
- UVA 644 Immediate Decodability (字符处理)
An encoding of a set of symbols is said to be immediately decodable if no code for one symbol is the ...
- APK扩展文件介绍、功能及用法
APK扩展文件介绍 Android Market (Google Play Store)中每一个APK文件的最大限制是50MB.假设您的程序中包括大量的数据文件,曾经您仅仅能把这些数据文件放到自己的s ...
- Vmware linux 安装 Vmware Tools 提示只读
在Vmware 虚拟机里安装完linux ,安装Vmware Tools,的时候会提示只读问题,是因为在安装 Vmware Tools 使用的是光盘挂在,光盘为只读文件,所以没有办法再光盘上直接的解压 ...
- 【Demo 0002】Android 提醒框
本章学习要点: //==: Alert Dialog void showAlertDialog() { final Builder builder = new AlertDialog.Builde ...
- asp于Server.MapPath用法
总是忘记Server.MapPath的用法,以下记录了,以后使用: 总注:Server.MapPath获得的路径都是server上的物理路径,也就是常说的绝对路径 1.Server.MapPath(& ...
- Xamainr 地图之webview初探
一 说几点 当下移动开发主要实现方式有传统的Native以及新的混合开发想Rect.js,nodejs这些前段框架,其本质要么是原生控件来实现UI,要么html来实现UI.Xamarin其实也只是取巧 ...
- Swift - 各种手势检测大全(UIGestureRecognizer及其子类)
UIGestureRecognizer有许多子类,用于监听一些常见的手势事件,这些子类主要有: 1,UISwipeGestureRecognizer:滑动(快速移动) 1 2 3 4 5 6 7 8 ...
- linux运维常用命令集
1.删除0字节文件 find -type f -size 0 -exec rm -rf {} \; 2.查看进程 按内存从大到小排列 PS -e -o "%C : %p : %z ...
- linux 终端控制-- 多彩输出 格式排版
linux 终端控制-- 多彩输出 格式排版 在unix/linux的终端下,怎么控制终端输出的颜色和格式呢,当然了有专门的工具,tput,但是能被terminal直接读懂的格式化字符串更通用. 先来 ...