1396. 【2014年鄞州区】挖掘机(d.pas/c/cpp)
2014 CPP
2023-09-14 08:57:17 时间
题目描述
挖掘机学校哪家强?中国山东找蓝翔。这几天,蓝翔技工学校在进行挖掘机比赛。比赛是这样进行的:一块场地被划分成了nn个格子,每个学生要驾驶挖掘机不重复地开过每个格子,并且只允许在格子中间转弯。如下图,分别是44和3*3的情况
每个学生只能从边界上的点进出比赛场地。并且,为了显示高超的挖掘机驾驶技巧,比赛的分数就是在场地上转弯的次数,就是图中的1/4圆形标注的。比如1号图是12次,2号图是5次。
输入
一行:n (场地被划分成了n * n个格子 ,)
第2~n+1行:挖掘机的路线 (路线为从1 –>2->3…->n*n);
输出
一个整数,表示比赛的分数
样例输入
3
1 2 3
8 7 4
9 6 5
样例输出
5
数据范围限制
N<500
这道题是个真真真(在此省略n个)的水题
所以事不宜迟,直接上代码:
#include<bits/stdc++.h>
using namespace std;
int n,ans,a[3005][3005],x,y,way[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
void dg(int xx,int yy,int f,int num){
if(num>n*n){
return ;
}
for(int i=0;i<4;i++){
int xxx=xx+way[i][0];
int yyy=yy+way[i][1];
if(a[xxx][yyy]==num+1&&xxx>=1&&xxx<=n&&yyy>=1&&yyy<=n){
if(f!=i+1&&f!=0) ans++;
dg(xxx,yyy,i+1,num+1);
}
}
}
int main(){
freopen("d.in","r",stdin);
freopen("d.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%d",&a[i][j]);
if(a[i][j]==1){
x=i;
y=j;
}
}
}
dg(x,y,0,1);
printf("%d",ans);
fclose(stdin);
fclose(stdout);
return 0;
}
相关文章
- Bash Shellshock(CVE-2014-6271)破壳漏洞测试
- 2014 网选 广州赛区 hdu 5025 Saving Tang Monk(bfs+四维数组记录状态)
- 2014-08-07 SSDB 使用 rocksdb 引擎
- PHP-Java-Bridge使用笔记,2014年9月最新版
- 2014年蓝桥杯Java C组——猜年龄
- 题目1444:蓝桥杯2014年第五届真题斐波那契
- 蓝桥杯2014省赛——等额本金(Java)
- 腾讯2014年实习生招聘笔试面试经历
- 腾讯2014年实习生招聘笔试面试经历
- 最具体的历史centos下一个 postfix + extmail + dovecot + maildrop 安装注意事项2014更新
- 2014 ACM湖南匹配10会议省赛
- 2013-2014的一路成长
- 2014鞍山现场赛C题HDU5072(素筛+容斥原理)