在4x4的棋盘上摆满了黑白棋子,黑白两色的位置和数目随机其中左上角坐标为(1,1),右下角坐标为(4,4),现在依次有一些翻转操作,要对一些给定支点坐标为中心的上下左右四个棋子的颜色进行翻转,请计算出翻转后的棋盘颜色。
2017-02-25 21:37
846 查看
// ConsoleApplication10.cpp : 定义控制台应用程序的入口点。
//
//
#include "stdafx.h" #include <iostream> #include <vector> #include <list> #include <deque> #include <string> #include <algorithm> using namespace std; class Flip { public: vector<vector<int> > flipChess(vector<vector<int> > A, vector<vector<int> > f) { for (int i = 0;i < f.size();i++) { int row = f[i][0]; int col = f[i][1]; if (row >= 0 && row < 4 && col - 1 >= 0 && col - 1 < 4) { if (A[row][col - 1] == 0) A[row][col - 1] = 1; else A[row][col - 1] = 0; } if (row-2 >= 0 && row-2 < 4 && col - 1 >= 0 && col - 1 < 4) { if (A[row-2][col - 1] == 0) A[row-2][col - 1] = 1; else A[row-2][col - 1] = 0; } if (row-1 >= 0 && row-1 < 4 && col >= 0 && col < 4) { if (A[row-1][col ] == 0) A[row-1][col ] = 1; else A[row-1][col ] = 0; } if (row-1 >= 0 && row-1 < 4 && col - 2 >= 0 && col - 2 < 4) { if (A[row-1][col - 2] == 0) A[row-1][col - 2] = 1; else A[row-1][col - 2] = 0; } } return A; } }; int main() { Flip fl; vector<int> A1 = { 0,0,1,1 }; vector<int> A2 = { 1,0,1,0 }; vector<int> A3 = { 0,1,1,0 }; vector<int> A4 = { 0,0,1,0 }; vector<vector<int> > A; A.push_back(A1); A.push_back(A2); A.push_back(A3); A.push_back(A4); vector<int> f1 = { 2,2 }; vector<int> f2 = { 3,3 }; vector<int> f3 = { 4,4 }; vector<vector<int> > f; f.push_back(f1); f.push_back(f2); f.push_back(f3); vector<vector<int> > re= fl.flipChess(A, f); return 0; };
相关文章推荐
- 现在有一个城市销售经理,需要从公司出发,去拜访市内的商家,已知他的位置以及商家的位置,但是由于城市道路交通的原因,他只能在左右中选择一个方向,在上下中选择一个方向,现在问他有多少种方案到达商家地址。给定一个地图map及它的长宽n和m,其中1代表经理位置,2代表商家位置,-1代表不能经过的地区,0代表可以经过的地区,请返回方案数,保证一定存在合法路径。保证矩阵的长宽都小于等于10。
- 第八题:牛牛的作业薄上有一个长度为 n 的排列 A,这个排列包含了从1到n的n个数,但是因为一些原因,其中有一些位置(不超过 10 个)看不清了,但是牛牛记得这个数列顺序对的数量是 k,顺序对是指满足 i < j 且 A[i] < A[j] 的对数,请帮助牛牛计算出,符合这个要求的合法排列的数目。
- OC从父串中查找子串,并得到子串的位置信息,对这些子串进行一些特殊操作的问题,如特定文字显示高亮颜色
- 02_对N个长度最长可达到1000的数进行排序、对给定的一个字符串,找出有重复的字符,并给出其位置、输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序
- 9.11排序与查找(五)——有个排序后的字符串数组,其中散布着一些空字符串,找出给定字符串的位置
- 用opencv计算棋盘格内角点坐标(通过4个内角点获得转换矩阵),并同时用halcon和opnecv对图像进行透视变换
- 针对表格操作,包括复制表格行,添加表格行,键盘上下左右键进行表格上每个td的上下左右切换;支持火狐 谷歌 ie等浏览器
- 2014年去哪儿网笔试题--一个10*10的矩阵(可以理解为棋盘),随时生成一组数据填入矩阵,任何一个位置的数字除4进行计算,按余数着色...
- Matlab与线性代数 -- 矩阵的左右翻转、上下翻转和矩阵的逆时针旋转90操作
- 堆的数据结构能够使得堆顶总是维持最大(对于大根堆)或最小(对于小根堆),给定一个数组,对这个数组进行建堆,则平均复杂度是多少?如果只是用堆的 push 操作,则一个大根堆依次输入 3,7,2,4,1,5,8 后,得到的堆的结构示意图是下述图表中的哪个?
- 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。 现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数
- 编写程序,测试字符串“你好,欢迎来到Java世界”的长度,将字符串的长度转换成字符串进行输出,并对其中的“Java”四个字母进行截取,输出截取字母以及它在字符串中的位置。
- 粒子系统基本原理 给出粒子中心点的坐标和粒子的大小,则很容易计算出粒子所需要的4个顶点的位置坐标。粒子系统由大量的粒子构成。每个粒子具有一组属性例如位置大小纹理颜色透明度运动速度加速度生命周期等属性。
- 二、给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一些指定的步长遍历地牢,要求每一步都不可以超过地牢的边界,也不能到达障碍上。地牢的出口可能在任意某个可以通行的位置上。牛牛想知道最坏情况下,他需要多少步才可以离开这个地牢。
- 【图像处理】利用种子填充法对二值图像进行连通域标记-计算目标中心位置方法2
- 设M 是一个m×n 的矩阵,其中每行的元素从左到右单增有序,每列的元素从上到下单增有序。 给出一个分治算法计算出给定元素x 在M 中的位置或者表明x 不在M 中。分析算法的时间复杂性。
- 【Java】有个排序后的字符串数组,其中散布着一些空字符串,编写一个方法,找出给定字符串的位置
- 你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料。为了让问题简单,我们用正整数表示不同颜色的颜料。你知道这幅画需要的n种颜色的颜料,你现在可以去商店购买一些颜料,但是商店不能保证能供应所有颜色的颜料,所以你需要自己混合一些颜料。混合两种不一样的颜色A和颜色B颜料可以产生(A XOR B)这种颜色的颜料(新产生的颜料也可以用作继续混合产生新的颜色,XOR表示异或操作)。本着勤俭节约的
- Python针对给定列表中元素进行翻转操作的方法分析
- 用opencv计算棋盘格内角点坐标(通过多个内角点获得转换矩阵),并同时用halcon和opnecv对图像进行透视变换