您的位置:首页 > 编程语言 > C语言/C++

第八届蓝桥杯c++大学A组(省赛)——第四题

2018-03-04 21:30 281 查看
真的,这么水的题目,自己考试的时候不去搜切线去搜图形,真是蠢到家了。还是经验不足。

#include <cstdio>
#include <string>
#include <queue>
#include <map>
using namespace std;

int arr[7][7];
int dx[4] = {-1, 0, 1, 0};
int dy[4] = {0, 1, 0, -1};
long long ans;

void dfs(int x, int y){

for (int i = 0; i<4; i++){
if ((x+dx[i]>=0 && x+dx[i]<7) && (y+dy[i]>=0 && y+dy[i]<7) && arr[x+dx[i]][y+dy[i]] == 0){
arr[x+dx[i]][y+dy[i]] = 1;
arr[6-x-dx[i]][6-y-dy[i]] = 1;

if (x+dx[i] == 0 || x+dx[i] == 6 || y+dy[i] == 0 || y+dy[i] == 6)   ans++; else dfs(x+dx[i], y+dy[i]);

arr[x+dx[i]][y+dy[i]] = 0;
arr[6-x-dx[i]][6-y-dy[i]] = 0;
}
}
}

int main() {

arr[3][3] = 1;
dfs(3,3);
printf("%d", ans/4);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: