chapter 2 section 2.4 Overfencing
来源:互联网 发布:mac更改磁盘格式 编辑:程序博客网 时间:2024/05/16 14:53
/*
ID: niepeng1
LANG: C++
TASK: maze1
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <iostream>
using namespace std;
struct Node{
int i;
int j;
int num;
};
char map[202][80];
int map2[201][80];
int w,h,w2,h2,max2=0;
int point[2][2];
void Dfs(int i,int j,int count)
{
if( map[i][j-1] != '|' && (map[i][j-2] == ' ' || map2[i][j-2] > count+1) ){
map[i][j-2] = 'a';
map2[i][j-2] = count+1;
Dfs(i,j-2,count+1);
}
if(map[i][j+1] != '|' && (map[i][j+2] == ' ' || map2[i][j+2] > count+1) ){
map[i][j+2] = 'a';
map2[i][j+2] = count+1;
Dfs(i,j+2,count+1);
}
if(map[i-1][j] != '-' && (map[i-2][j] == ' ' || map2[i-2][j] > count+1) ){
map[i-2][j] = 'a';
map2[i-2][j] = count+1;
Dfs(i-2,j,count+1);
}
if(map[i+1][j] != '-' && (map[i+2][j] == ' ' || map2[i+2][j] > count+1) ){
map[i+2][j] = 'a';
map2[i+2][j] = count+1;
Dfs(i+2,j,count+1);
}
}
int main(void)
{
int i,j;
char c;
FILE *in, *out;
in = fopen("maze1.in", "r");
out = fopen("maze1.out", "w+");
fscanf(in,"%d",&w); w2 = 2*w;
fscanf(in,"%d",&h); h2 = 2*h;
fscanf(in,"%c",&c);
for(i=0; i<=h2; i++)
{
for(j=0; j<=w2; j++)
{
map2[i][j]=0;
fscanf(in,"%c",&map[i][j]);
}
fscanf(in,"%c",&c);
}
for(j=0,i=0;i<=h2;i++){
if(map[i][0] == ' '){
point[j][0] = i;
point[j][1] = 1;
map[i][0] = '|';
j++;
}
if(map[i][w2] == ' '){
point[j][0] = i;
point[j][1] = w2-1;
map[i][w2] = '|';
j++;
}
}
for(i=0;i<=w2;i++){
if( map[0][i] == ' '){
point[j][0] = 1;
point[j][1] = i;
map[0][i] = '-';
j++;
}
if(map[h2][i] == ' '){
point[j][0] = h2-1;
point[j][1] = i;
map[h2][i] = '-';
j++;
}
}
map2[ point[0][0] ][ point[0][1] ] =1;
map2[ point[1][0] ][ point[1][1] ] =1;
Dfs(point[0][0],point[0][1],1);
Dfs(point[1][0],point[1][1],1);
for(i=1;i<=h2-1;i+=2)
for(j=1;j<=w2-1;j+=2)
{
if( max2 < map2[i][j])
max2=map2[i][j];
}
fprintf(out,"%d/n",max2);//out,
//printf("%d/n",max2);
fclose(in);
fclose(out);
return 0;
}
- chapter 2 section 2.4 Overfencing
- USACO section 2.4 Overfencing(dfs+bfs)
- USACO-Section 2.4 Overfencing(BFS)
- chapter 2 section 2.4 The Tamworth Two
- usaco Chapter 2 section 2.4 Fractions to Decimals
- 【USACO题库】2.4.2 Overfencing穿越栅栏
- USACO Section 2.4 Overfencing - 略坑爹的输入..再一个函数递归来DFS要慎用.
- chapter 2 section 2.3 Controlling Companies
- [HDU]ACM Steps-Chapter One-Section 2
- USACO 2.4.3 Overfencing
- Usaco 2.4Overfencing(BFS)
- USACO 2.4 Overfencing (maze1)
- USACO--2.4Overfencing
- USACO 2.4 Overfencing (BFS)
- 2.4 Overfencing <BFS>
- Overfencing
- 【USACO题库】2.4.2 Overfencing穿越栅栏(搜索)
- Chapter 1 Section 1.1 Vocabulary
- Epic开放虚幻引擎3 开发包免费下载
- 代理与JAVA5_线程并发库11月07日[原创]
- 关于找工作的心态(听一位面试官这样说!!(花五分钟去看完它,再花十分钟去回味))《转载》
- Remoting用法(2)
- CruiseControl持续集成
- chapter 2 section 2.4 Overfencing
- 短短仔的光阴迫逍着少年时
- C++中值传递、指针传递、引用传递的总结(zz)
- 关于php里的include
- jtag安装
- 关于大脑受控、控制大脑意识、遥控大脑、精神控制、脑意识控制、思维控制、操控脑活动、脑信息控制等技术行为的看法
- 代理模式之Java学习笔记11月07日[转贴]
- 用Myeclipse保存时自动编译!不用重新加载项目
- PHP中mysql_fetch_array()和mysql_fetch_row()的区别