2015 AlBaath Collegiate Programming Contest B
Description
Yaaaay, Haven't you heard the news? Bakaloria results are out! And Reem had very good grades. Finally she can go to IT college and pursue her childhood dream of becoming a great programmer.
Reem is very excited about her college, she already started learning programming. Today she was learning about a very well known problem, the 8-Queens problem (you never saw that coming, didn't you?) she has wrote a program to generate all the possible situations of the queens, but as a novice programmer she found it hard to check whether if these situations are valid. As usual you come to her rescue and offer to help with this hard task!
Now you are stuck with this task: Given the positions of 8 queens on a regular chess board, determine if this situation is valid.
A valid situation is a configuration of the 8 queens where no queen can strike any other queen.
On a standard 8 × 8 chess board, a queen can strike any other queen on it's row, column, or two diagonals.
The first line of input has one integer T the number of test cases your program must process.
Each of the next T lines contains the positions of 8 queens. A position of a queen is described as one character [A - H] (the column of the queen), followed by one number [1 - 8] (the row of the queen)
For example: "A4" represents a queen at the first column and the fourth row.
(see sample input for more details)
For each test case print one line containing the word Valid if the configuration is valid, or Invalid otherwise.
2
A1 B5 C8 D6 E3 F7 G2 H4
C3 E4 C4 E1 C4 F4 A8 G6
Valid
Invalid
题意:告诉我们8个棋子的摆放位置,问我们可以这样摆放么
解法:A-Z先变换为1-8,然后根据八皇后的规定判断
#include<bits/stdc++.h>
using namespace std;
struct P
{
int x,y;
}He[100];
char s[10];
set<int>q1,q2;
int main()
{
int t;
cin>>t;
while(t--)
{
for(int i=1;i<=8;i++)
{
cin>>s;
He[i].x=s[0]-'A'+1;
He[i].y=s[1]-'0';
q1.insert(He[i].x);
q2.insert(He[i].y);
//cout<<He[i].x<<" "<<He[i].y<<endl;
}
if(q1.size()==q2.size()&&q1.size()==8)
{
int flag=0;
for(int i=1;i<=8;i++)
{
for(int j=1;j<=8;j++)
{
if(i!=j)
{
if(abs(He[i].x-He[j].x)==abs(He[i].y-He[j].y))
{
flag=1;
break;
}
}
}
}
if(flag)
{
cout<<"Invalid"<<endl;
}
else
{
cout<<"Valid"<<endl;
}
}
else
{
cout<<"Invalid"<<endl;
}
// cout<<q1.size()<<" "<<q2.size()<<endl;
q1.clear(),q2.clear();
}
return 0;
}
2015 AlBaath Collegiate Programming Contest B的更多相关文章
- 2015 AlBaath Collegiate Programming Contest A
Description Tamer is traveling with his brother on a long highway. He sees a traffic light at a dist ...
- 2015 AlBaath Collegiate Programming Contest(2月14日训练赛)
A (By ggg): 题意:一个人还有x秒到红绿灯,这个红绿灯有g秒绿灯,y秒黄 灯,r秒红灯,问你到红绿灯的时候是什么灯.值得注意的是绿 灯变黄灯时,第g秒是黄灯了. B (By Anxdada) ...
- The 2015 China Collegiate Programming Contest A. Secrete Master Plan hdu5540
Secrete Master Plan Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Othe ...
- The 2015 China Collegiate Programming Contest Game Rooms
Game Rooms Time Limit: 4000/4000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submi ...
- 2015 German Collegiate Programming Contest (GCPC 15) + POI 10-T3(12/13)
$$2015\ German\ Collegiate\ Programming\ Contest\ (GCPC 15) + POI 10-T3$$ \(A.\ Journey\ to\ Greece\ ...
- Gym 100952E&&2015 HIAST Collegiate Programming Contest E. Arrange Teams【DFS+剪枝】
E. Arrange Teams time limit per test:2 seconds memory limit per test:64 megabytes input:standard inp ...
- Gym 100952F&&2015 HIAST Collegiate Programming Contest F. Contestants Ranking【BFS+STL乱搞(map+vector)+优先队列】
F. Contestants Ranking time limit per test:1 second memory limit per test:24 megabytes input:standar ...
- The 2015 China Collegiate Programming Contest L. Huatuo's Medicine hdu 5551
Huatuo's Medicine Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others ...
- The 2015 China Collegiate Programming Contest K Game Rooms hdu 5550
Game Rooms Time Limit: 4000/4000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
随机推荐
- 转:Python itertools模块
itertools Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数. 首先,我们看看itertools提供的几个"无限"迭代器: >>& ...
- Java基础(3):求任意数字的长度的三种方法
题目:统计任意一个数字的长度 方法一:先把数字转换为字符换,再直接用现成的函数统计长度即可 方法二:用API public class Test { final static int[] sizeTa ...
- centos每天一句命令
shutdown -h now 立刻关机 后面可以加上关键的时间 -r 重启 reboot 重启 同时记载以下,仅仅给刚刚接触的新手来说的 按两次tab 键会自动命令 cd 到目录下 su r ...
- bzoj4152 [AMPPZ2014]The Captain
最短路,先将x排序,然后把排序后权值相邻的点连边,再把y排序,也把权值相邻的点连边,求一遍1到n的最短路就好啦. 代码 #include<cstdio> #include<queue ...
- 。。。验证码,发送不同的GET请求。。。
今天讲课的时候,突然发现了一个新的知识点,但是作为老师的我也不会,呵呵.然而我在VIP群里问了,发现人家都会,说的是非常的精炼,是的,他们确实厉害! function changeNum(){ ...
- Redis和Memcache对比及选择
没有必要过多的关注性能.由于Redis只使用单核,而Memcached可以使用多核, 所以在比较上,平均每一个核上Redis在存储小数据时比Memcached性能更高.而在100k以上的数据中,Mem ...
- PHP漏洞全解(详细介绍)
转载 http://www.jb51.net/article/31898.htm 针对PHP的网站主要存在下面几种攻击方式: 1.命令注入(Command Injection) 2.eval注入(E ...
- 《zw版Halcon与delphi系列原创教程》发布说明
<zw版Halcon与delphi系列原创教程>发布说明 zw转载的<台湾nvp系列halcon-delphi教程>,虽然很多,不过基本上都是从cnc.数控角度的demo.. ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON SetMshape
zw版[转发·台湾nvp系列Delphi例程]HALCON SetMshape procedure TForm1.FormShow(Sender: TObject);var img : HImageX ...
- iOS的第一个习作
首发:个人博客,更新&纠错&回复 代码在这里,对git还是使用不熟练,好在github新建项目后体贴地提示是不是要执行这样两句—— 这两句我肯定是背不住的,所以记一下. git rem ...