CSU CHESS


 1 #include <stdio.h>
2 #include <string.h>
3 #include <string.h>
4
5 int i,j,n,a,b,c,d,temp1,temp2,temp3,temp4,temp5,temp6;
6 char a1,c1;
7
8 void solve()
9 {
10 temp1=a+b;
11 temp2=c+d;
12 temp3=a-b;
13 temp4=c-d;
14 temp5=(a+b)%2;
15 temp6=(c+d)%2;
16 if(temp5!=temp6)
17 printf("Impossible\n");
18
19 else if(a==c&&b==d)
20 printf("0 %c %d\n",a1,b);
21 else if(temp1==temp2||temp3==temp4)
22 printf("1 %c %d %c %d\n",a1,b,c1,d);
23 else
24 {
25 int x,y;
26 x=a+b;
27 y=c-d;
28 for(int i=1; i<=8; i++)
29 if((i+i-y)==x&&(i-y)>=1&&(i-y)<=8)
30 {
31 char temp;
32 temp=‘A‘+8-i;
33 printf("2 %c %d %c %d %c %d\n",a1,b,temp,i-y,c1,d);
34 return ;
35 }
36 x=c+d;
37 y=a-b;
38 for(int i=1; i<=8; i++)
39 if((i+i-y)==x&&(i-y)>=1&&(i-y)<=8)
40 {
41 char temp;
42 temp=‘A‘+8-i;
43 printf("2 %c %d %c %d %c %d\n",a1,b,temp,i-y,c1,d);
44 return ;
45 }
46 }
47 }
48 int main()
49 {
50
51 scanf("%d",&n);
52 while(n--)
53 {
54 getchar();
55 scanf("%c",&a1);
56 scanf("%d",&b);
57 getchar();
58 scanf("%c",&c1);
59 scanf("%d",&d);
60
61
62
63
64
65 a=8-(a1-‘A‘);
66 c=8-(c1-‘A‘);
67
68
69 //printf("ans %d %d %d %d\n",a,b,c,d);
70 solve();
71 }
72 return 0;
73 }

CSU CHESS,布布扣,bubuko.com

时间: 2024-10-19 18:51:59

CSU CHESS的相关文章

CSU 1804: 有向无环图(拓扑排序)

http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1804 题意:…… 思路:对于某条路径,在遍历到某个点的时候,之前遍历过的点都可以到达它,因此在这个时候对答案的贡献就是∑(a1 + a2 + a3 + ... + ai) * bv,其中a是之前遍历到的点,v是当前遍历的点. 这样想之后就很简单了.类似于前缀和,每次遍历到一个v点,就把a[u]加给a[v],然后像平时的拓扑排序做就行了. 1 #include <bits/stdc++.h>

CSU 1111: 三家人【有趣的思维题】

1111: 三家人 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 2241  Solved: 874 [Submit][Status][Web Board] Description 有三户人家共拥有一座花园,每户人家的太太均需帮忙整理花园.A 太太工作了5 天,B 太太则工作了4 天,才将花园整理完毕.C 太太因为正身怀六甲无法加入她们的行列,便出了90元.请问这笔钱如何分给A.B 二位太太较为恰当?A 应得多少元?90/(5+4)*5=$50

CSU 1112: 机器人的指令【模拟题】

1112: 机器人的指令 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 1858  Solved: 682 [Submit][Status][Web Board] Description 数轴原点有一个机器人.该机器人将执行一系列指令,你的任务是预测所有指令执行完毕之后它的位置. ·LEFT:往左移动一个单位 ·RIGHT: 往右移动一个单位 ·SAME AS i: 和第i 条执行相同的动作.输入保证i 是一个正整数,且不超过之前执行指令数 In

【百度之星2014~初赛(第二轮)解题报告】Chess

声明 笔者最近意外的发现 笔者的个人网站http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站,因此,笔者添加此条声明. 郑重声明:这篇记录<[百度之星2014~初赛(第二轮)解题报告]Chess>转载自 http://tiankonguse.com/ 的这条记录:http://tiankonguse.com/record/record.php?id=667 前言 最近要毕业了,有半年没做

CSU 1416 Practical Number

原题链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1416 结论题,具体判断方法请点击这个网址. 筛素数是肯定的,但一开始定的范围太大了,想当然要筛到10^9的质数,但仔细想想,只要到sqrt(10^9)就可以了,最后的那一个质数是最后一步的比较,不用筛出来. #include <stdio.h> #include <string.h> #include <iostream> using namespace st

CSU 1412 Line and Circles

原题链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1412 题目要求判断是否有一条直线可以穿过所有的圆. 做法:把所有圆心做一次凸包,然后判断这个凸包是否能通过一个宽度为2*R的通道. 做法和求凸包直径差不多,只是判断的时候把点到两个端点的距离换成点到直线的距离. #include <stdio.h> #include <string.h> #include <math.h> #include <stdli

CSU 1547 Rectangle(dp、01背包)

题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1547 Description Now ,there are some rectangles. The area of these rectangles is 1* x or 2 * x ,and now you need find a big enough rectangle( 2 * m) so that you can put all rectangles into it(th

BZOJ 1801: [Ahoi2009]chess 中国象棋( dp )

dp(i, j, k)表示考虑了前i行, 放了0个炮的有j列, 放了1个炮的有k列. 时间复杂度O(NM^2) -------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; const in

CSU 1601 War (并查集)

1601: War Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 202  Solved: 58 [Submit][Status][Web Board] Description AME decided to destroy CH's country. In CH' country, There are N villages, which are numbered from 1 to N. We say two village A and B ar