Codeforces Round #217 (Div. 2) 解题报告
2013-12-07 21:37
363 查看
Problem A Rook, Bishop and King
题目要求:在国际象棋棋盘上给你一个起始点一个终点。让你求车,象,国王从起始点到终点最短走的步数。
做法很简单三个公式,具体看代码吧。
代码如下:
View Code
题目要求:在国际象棋棋盘上给你一个起始点一个终点。让你求车,象,国王从起始点到终点最短走的步数。
做法很简单三个公式,具体看代码吧。
代码如下:
#include <iostream> #include <fstream> #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #include <algorithm> #include <utility> #include <vector> #include <queue> #include <stack> #define INF 0x7fffffff #define ll long long #define eps 1e-6 using namespace std; int n, m[110], num[110][110], flag1[110], flag2[110]; bool judge(int x, int b){ memset(flag1, 0 ,sizeof flag1); memset(flag2, 0 ,sizeof flag2); for(int i=0; i<m[x]; i++){ flag1[num[x][i]] = 1; } for(int i=0; i<m[b]; i++){ flag2[num[b][i]] = 1; } for(int i=0; i<101; i++){ if(flag1[i]==0 && flag2[i])return true; } return false; } int main() { // freopen("in.txt", "r", stdin); while(scanf("%d", &n)!=EOF){ for(int i=0; i<n; i++){ scanf("%d", &m[i]); for(int j=0; j<m[i]; j++){ scanf("%d", &num[i][j]); } } for(int i=0; i<n; i++){ int flag = 1; for(int j=0; j<n; j++){ if(i!=j && judge(i,j)==false){ flag = 0;break; } } if(flag)printf("YES\n"); else printf("NO\n"); } } return 0; }
View Code
相关文章推荐
- 解题报告:Codeforces Round #146 (Div. 1) B. Let's Play Osu! 概率DP
- Codeforces Round #224 (Div. 2) 解题报告
- Codeforces Round #229 (Div. 2) 解题报告
- 【解题报告】Codeforces Round #340 (Div. 2)
- Codeforces Round #189 (Div. 2) 解题报告
- Codeforces Round #188 (Div. 2) 解题报告 //缺E
- Codeforces Round #286 (Div. 1) 解题报告
- Codeforces Round #287 (Div. 2) 解题报告
- Codeforces Round #332 (Div. 2)解题报告
- Codeforces 441 (Div.1) 解题报告
- Topcoder SRM 585 DIV2 解题报告 //缺1000
- Codeforces Round #231 (Div2) 迟到的解题报告
- 解题报告:Codeforces Round #381 (Div. 1)B. Alyona and a tree
- codeforces Round #237(div2) A解题报告
- codeforces Round #237(div2) C解题报告
- Codeforces #263 div2 解题报告
- Codeforces Round #241 (Div. 2) 解题报告
- codeforces Round #241(div2) E解题报告
- codeforces Round #263(div2) D解题报告
- codeforces Round #260(div2) B解题报告